概述C#數據庫操作類
作者:佚名
這里介紹C#數據庫操作類主要包括兩類方法:一類用來直接執(zhí)行SQL語句,另一類用來執(zhí)行存儲過程,其中的數據庫連接字符串的數據庫路徑采用了絕對路徑。
C#數據庫操作類的封裝是任何工程都必不可少地,本例當然也不例外。C#數據庫操作類主要包括兩類方法:一類用來直接執(zhí)行SQL語句,另一類用來執(zhí)行存儲過程。
其中的數據庫連接字符串的數據庫路徑采用了絕對路徑,讀者調試程序時應當做相應的更改。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語句操作
- //執(zhí)行只讀數據信息的提取,返回一個datareader
- publicSqlDataReaderGetReader(stringsearch)
- {
- SqlDataReaderReader;
- if(Con.State!=ConnectionState.Open)
- Con.Open();//打開數據庫連接
- SqlCommandCom=newSqlCommand(search,Con);
- Reader=Com.ExecuteReader();//執(zhí)行SQL語句
- returnReader;//返回一個reader
- }
- //輸入查詢字符串,返回dataset
- publicDataSetgetMyDataSet(stringsql)
- {
- command.Connection=Con;//配置command對象
- command.CommandText=sql;//賦予要執(zhí)行的語句
- DataSetdt=newDataSet();//初始化一個數據返回集合
- SqlDataAdapterda=newSqlDataAdapter(command);
- Con.Open();//打開連接
- da.Fill(dt);//執(zhí)行語句
- command.Connection.Close();//關閉連接
- returndt;
- }
- //執(zhí)行非查詢SQL語句
- publicvoidExecuteSql(stringsql)
- {
- if(Con.State!=ConnectionState.Open)
- Con.Open();//如果數據連接關閉,則打開
- SqlCommandCom=newSqlCommand(sql,Con);
- Com.ExecuteNonQuery();//執(zhí)行非查詢SQL語句
- Con.Close();
- }
- //執(zhí)行非查詢數據庫操作,是否關閉數據庫連接可以選擇
- publicvoidExecuteSql(stringsql,boolcloseConnection)
- {
- if(Con.State!=ConnectionState.Open)
- Con.Open();//如果未打開連接,則打開
- SqlCommandCom=newSqlCommand(sql,Con);
- Com.ExecuteNonQuery();
- if(closeConnection)Con.Close();//如果需要關閉,則關閉連接
- }
- #endregion
- #region執(zhí)行存儲過程的代碼
- //輸入存儲過程名稱,執(zhí)行查詢存儲過程
- publicDataSetgetDataSet(stringprodureName)
- {
- command.Connection=Con;//賦予連接對象
- //執(zhí)行的類型為存儲過程
- command.CommandType=CommandType.StoredProcedure;
- command.CommandText=produreName;//賦予執(zhí)行的存儲過程名字
- DataSetdt=newDataSet();
- SqlDataAdapterda=newSqlDataAdapter(command);
- Con.Open();//打開連接
- da.Fill(dt);//填充數據
- command.Connection.Close();
- returndt;//返回數據集
- }
- //輸入存儲過程名,執(zhí)行非查詢存儲過程
- publicboolexec(stringprodureName)
- {
- boolflag=false;//任務是否正確執(zhí)行,初始化為false
- command.Connection=Con;//賦予command對象以數據連接
- command.CommandType=CommandType.StoredProcedure;
- command.CommandText=produreName;//存儲過程名稱
- try
- {
- command.ExecuteNonQuery();//執(zhí)行存儲過程
- flag=true;//正確完成任務
- }
- finally
- {
- command.Connection.Close();//關閉連接
- }
- returnflag;//返回成功與否的標志
- }
- #endregion
- }
- }
【編輯推薦】
責任編輯:佚名
來源:
博客園