C#数据库操作类的封装是任何工程都必不可少地,本例当然也不例外。C#数据库操作类主要包括两类方法:一类用来直接执行SQL语句,另一类用来执行存储过程。
其中的数据库连接字符串的数据库路径采用了绝对路径,读者调试程序时应当做相应的更改。C#数据库操作类具体代码如下:
- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.Text;
- usingSystem.Data.SqlClient;
- usingSystem.Data;
- namespaceMyChat
- {
- //数据库操作类
- publicclassSql
- {
- privatestringstr=null;//数据库连接字符串
- publicSqlConnectionCon;//sql数据连接组件实例化
- publicSqlCommandcommand=newSqlCommand();//初始化一个SQL命令对象
- publicSql()//类初始化,初始化数据连接
- {
- stringpath=@"C:\DocumentsandSettings\Administrator\桌面\tools\
- mychat1.0\Chat";
- //数据库连接字符串
- str="DataSource=.\\SQLEXPRESS;AttachDbFilename=\""+path+"\\app_data\\chat.mdf\";
- IntegratedSecurity=True;UserInstance=True";
- Con=newSqlConnection(str);
- }
- #regionSQL语句操作
- //执行只读数据信息的提取,返回一个datareader
- publicSqlDataReaderGetReader(stringsearch)
- {
- SqlDataReaderReader;
- if(Con.State!=ConnectionState.Open)
- Con.Open();//打开数据库连接
- SqlCommandCom=newSqlCommand(search,Con);
- Reader=Com.ExecuteReader();//执行SQL语句
- returnReader;//返回一个reader
- }
- //输入查询字符串,返回dataset
- publicDataSetgetMyDataSet(stringsql)
- {
- command.Connection=Con;//配置command对象
- command.CommandText=sql;//赋予要执行的语句
- DataSetdt=newDataSet();//初始化一个数据返回集合
- SqlDataAdapterda=newSqlDataAdapter(command);
- Con.Open();//打开连接
- da.Fill(dt);//执行语句
- command.Connection.Close();//关闭连接
- returndt;
- }
- //执行非查询SQL语句
- publicvoidExecuteSql(stringsql)
- {
- if(Con.State!=ConnectionState.Open)
- Con.Open();//如果数据连接关闭,则打开
- SqlCommandCom=newSqlCommand(sql,Con);
- Com.ExecuteNonQuery();//执行非查询SQL语句
- Con.Close();
- }
- //执行非查询数据库操作,是否关闭数据库连接可以选择
- publicvoidExecuteSql(stringsql,boolcloseConnection)
- {
- if(Con.State!=ConnectionState.Open)
- Con.Open();//如果未打开连接,则打开
- SqlCommandCom=newSqlCommand(sql,Con);
- Com.ExecuteNonQuery();
- if(closeConnection)Con.Close();//如果需要关闭,则关闭连接
- }
- #endregion
- #region执行存储过程的代码
- //输入存储过程名称,执行查询存储过程
- publicDataSetgetDataSet(stringprodureName)
- {
- command.Connection=Con;//赋予连接对象
- //执行的类型为存储过程
- command.CommandType=CommandType.StoredProcedure;
- command.CommandText=produreName;//赋予执行的存储过程名字
- DataSetdt=newDataSet();
- SqlDataAdapterda=newSqlDataAdapter(command);
- Con.Open();//打开连接
- da.Fill(dt);//填充数据
- command.Connection.Close();
- returndt;//返回数据集
- }
- //输入存储过程名,执行非查询存储过程
- publicboolexec(stringprodureName)
- {
- boolflag=false;//任务是否正确执行,初始化为false
- command.Connection=Con;//赋予command对象以数据连接
- command.CommandType=CommandType.StoredProcedure;
- command.CommandText=produreName;//存储过程名称
- try
- {
- command.ExecuteNonQuery();//执行存储过程
- flag=true;//正确完成任务
- }
- finally
- {
- command.Connection.Close();//关闭连接
- }
- returnflag;//返回成功与否的标志
- }
- #endregion
- }
- }
【编辑推荐】