C# · 12月 22, 2021

在C#中如何使用数据库操作类Sql

<span style=”FONT-SIZE: 10pt”> 数据库操作类的封装是任何工程都必不可少地,本例当然也不例外。sql类主要包括两类方法:一类用来直接执行sql语句,另一类用来执行存储过程。
<p style=”FONT-SIZE: 10pt”>    其中的数据库连接字符串的数据库路径采用了绝对路径,读者调试程序时应当做相应的更改。sql类的具体代码如下:

<br clear=”all”><p style=”FONT-SIZE: 10pt”>

<p style="FONT-SIZE: 10pt">    {

<p style="FONT-SIZE: 10pt">    //数据库操作类

<p style="FONT-SIZE: 10pt">    public class sql    {    private string str = null;                   //数据库连接字符串    public sqlConnection Con;                    //sql数据连接组件实例化    public sqlCommand command = new sqlCommand();    //初始化一个sql命令对象    public sql()                                 //类初始化,初始化数据连接    {    string path = @"C:\Documents and Settings\Administrator\桌面\tools\    mychat1.0\Chat";    //数据库连接字符串    str="Data Source=.\\sqlEXPRESS;AttachDbFilename=\"" + path + "";    Integrated Security=True;User Instance=True";    Con = new sqlConnection(str);    }

<p style="FONT-SIZE: 10pt">    #region sql语句操作

<p style="FONT-SIZE: 10pt">    // 执行只读数据信息的提取,返回一个datareader

<p style="FONT-SIZE: 10pt">    public sqlDataReader GetReader(string search)    {    sqlDataReader Reader;    if(Con.State != ConnectionState.Open)    Con.Open();                           //打开数据库连接    sqlCommand Com = new sqlCommand(search, Con);    Reader = Com.ExecuteReader();        //执行sql语句    return Reader;                           //返回一个reader    }

<p style="FONT-SIZE: 10pt">    // 输入查询字符串,返回dataset

<p style="FONT-SIZE: 10pt">    public DataSet getMyDataSet(string sql)    {    command.Connection = Con;            //配置command对象    command.CommandText = sql;           //赋予要执行的语句    DataSet dt = new DataSet();          //初始化一个数据返回集合    sqlDataAdapter da = new sqlDataAdapter(command);    Con.Open();                          //打开连接    da.Fill(dt);                     //执行语句    command.Connection.Close();          //关闭连接    return dt;    }

<p style="FONT-SIZE: 10pt">    // 执行非查询sql语句

<p style="FONT-SIZE: 10pt">    public void Executesql(string sql)    {    if(Con.State != ConnectionState.Open)    Con.Open();                      //如果数据连接关闭,则打开    sqlCommand Com = new sqlCommand(sql, Con);    Com.ExecuteNonQuery();               //执行非查询sql语句    Con.Close();    }

<p style="FONT-SIZE: 10pt">    // 执行非查询数据库操作,是否关闭数据库连接  可以选择

<p style="FONT-SIZE: 10pt">    public void Executesql(string sql, bool closeConnection)    {    if(Con.State != ConnectionState.Open)    Con.Open();                      //如果未打开连接,则打开    sqlCommand Com = new sqlCommand(sql, Con);    Com.ExecuteNonQuery();    if (closeConnection) Con.Close();    //如果需要关闭,则关闭连接    }

<p style="FONT-SIZE: 10pt">    #endregion    #region 执行存储过程的代码

<p style="FONT-SIZE: 10pt">    //输入存储过程名称,执行查询存储过程    public DataSet getDataSet(string produreName)    {    command.Connection = Con;            //赋予连接对象    //执行的类型为存储过程    command.CommandType = CommandType.StoredProcedure  ;    command.CommandText = produreName;   //赋予执行的存储过程名字    DataSet dt = new DataSet();    sqlDataAdapter da = new sqlDataAdapter(command);    Con.Open();                          //打开连接    da.Fill(dt);                     //填充数据    command.Connection.Close();    return dt;                           //返回数据集    }

<p style="FONT-SIZE: 10pt">    //输入存储过程名,执行非查询存储过程

<p style="FONT-SIZE: 10pt">    public bool exec(string produreName)    {    bool flag = false;                   //任务是否正确执行,初始化为false    command.Connection = Con;            //赋予command对象以数据连接    command.CommandType = CommandType.StoredProcedure;    command.CommandText = produreName;   //存储过程名称    try    {    command.ExecuteNonQuery();        //执行存储过程    flag = true;                      //正确完成任务    }

<p style="FONT-SIZE: 10pt">    finally    {    command.Connection.Close();           //关闭连接    }    return flag;                         //返回成功与否的标志    }    #endregion    }    } 

</td> </tr></table>