概述C#數(shù)據(jù)庫(kù)操作類
作者:佚名 
  這里介紹C#數(shù)據(jù)庫(kù)操作類主要包括兩類方法:一類用來直接執(zhí)行SQL語(yǔ)句,另一類用來執(zhí)行存儲(chǔ)過程,其中的數(shù)據(jù)庫(kù)連接字符串的數(shù)據(jù)庫(kù)路徑采用了絕對(duì)路徑。
 C#數(shù)據(jù)庫(kù)操作類的封裝是任何工程都必不可少地,本例當(dāng)然也不例外。C#數(shù)據(jù)庫(kù)操作類主要包括兩類方法:一類用來直接執(zhí)行SQL語(yǔ)句,另一類用來執(zhí)行存儲(chǔ)過程。
其中的數(shù)據(jù)庫(kù)連接字符串的數(shù)據(jù)庫(kù)路徑采用了絕對(duì)路徑,讀者調(diào)試程序時(shí)應(yīng)當(dāng)做相應(yīng)的更改。C#數(shù)據(jù)庫(kù)操作類具體代碼如下:
- usingSystem;
 - usingSystem.Collections.Generic;
 - usingSystem.Text;
 - usingSystem.Data.SqlClient;
 - usingSystem.Data;
 - namespaceMyChat
 - {
 - //數(shù)據(jù)庫(kù)操作類
 - publicclassSql
 - {
 - privatestringstr=null;//數(shù)據(jù)庫(kù)連接字符串
 - publicSqlConnectionCon;//sql數(shù)據(jù)連接組件實(shí)例化
 - publicSqlCommandcommand=newSqlCommand();//初始化一個(gè)SQL命令對(duì)象
 - publicSql()//類初始化,初始化數(shù)據(jù)連接
 - {
 - stringpath=@"C:\DocumentsandSettings\Administrator\桌面\tools\
 - mychat1.0\Chat";
 - //數(shù)據(jù)庫(kù)連接字符串
 - str="DataSource=.\\SQLEXPRESS;AttachDbFilename=\""+path+"\\app_data\\chat.mdf\";
 - IntegratedSecurity=True;UserInstance=True";
 - Con=newSqlConnection(str);
 - }
 - #regionSQL語(yǔ)句操作
 - //執(zhí)行只讀數(shù)據(jù)信息的提取,返回一個(gè)datareader
 - publicSqlDataReaderGetReader(stringsearch)
 - {
 - SqlDataReaderReader;
 - if(Con.State!=ConnectionState.Open)
 - Con.Open();//打開數(shù)據(jù)庫(kù)連接
 - SqlCommandCom=newSqlCommand(search,Con);
 - Reader=Com.ExecuteReader();//執(zhí)行SQL語(yǔ)句
 - returnReader;//返回一個(gè)reader
 - }
 - //輸入查詢字符串,返回dataset
 - publicDataSetgetMyDataSet(stringsql)
 - {
 - command.Connection=Con;//配置command對(duì)象
 - command.CommandText=sql;//賦予要執(zhí)行的語(yǔ)句
 - DataSetdt=newDataSet();//初始化一個(gè)數(shù)據(jù)返回集合
 - SqlDataAdapterda=newSqlDataAdapter(command);
 - Con.Open();//打開連接
 - da.Fill(dt);//執(zhí)行語(yǔ)句
 - command.Connection.Close();//關(guān)閉連接
 - returndt;
 - }
 - //執(zhí)行非查詢SQL語(yǔ)句
 - publicvoidExecuteSql(stringsql)
 - {
 - if(Con.State!=ConnectionState.Open)
 - Con.Open();//如果數(shù)據(jù)連接關(guān)閉,則打開
 - SqlCommandCom=newSqlCommand(sql,Con);
 - Com.ExecuteNonQuery();//執(zhí)行非查詢SQL語(yǔ)句
 - Con.Close();
 - }
 - //執(zhí)行非查詢數(shù)據(jù)庫(kù)操作,是否關(guān)閉數(shù)據(jù)庫(kù)連接可以選擇
 - publicvoidExecuteSql(stringsql,boolcloseConnection)
 - {
 - if(Con.State!=ConnectionState.Open)
 - Con.Open();//如果未打開連接,則打開
 - SqlCommandCom=newSqlCommand(sql,Con);
 - Com.ExecuteNonQuery();
 - if(closeConnection)Con.Close();//如果需要關(guān)閉,則關(guān)閉連接
 - }
 - #endregion
 - #region執(zhí)行存儲(chǔ)過程的代碼
 - //輸入存儲(chǔ)過程名稱,執(zhí)行查詢存儲(chǔ)過程
 - publicDataSetgetDataSet(stringprodureName)
 - {
 - command.Connection=Con;//賦予連接對(duì)象
 - //執(zhí)行的類型為存儲(chǔ)過程
 - command.CommandType=CommandType.StoredProcedure;
 - command.CommandText=produreName;//賦予執(zhí)行的存儲(chǔ)過程名字
 - DataSetdt=newDataSet();
 - SqlDataAdapterda=newSqlDataAdapter(command);
 - Con.Open();//打開連接
 - da.Fill(dt);//填充數(shù)據(jù)
 - command.Connection.Close();
 - returndt;//返回?cái)?shù)據(jù)集
 - }
 - //輸入存儲(chǔ)過程名,執(zhí)行非查詢存儲(chǔ)過程
 - publicboolexec(stringprodureName)
 - {
 - boolflag=false;//任務(wù)是否正確執(zhí)行,初始化為false
 - command.Connection=Con;//賦予command對(duì)象以數(shù)據(jù)連接
 - command.CommandType=CommandType.StoredProcedure;
 - command.CommandText=produreName;//存儲(chǔ)過程名稱
 - try
 - {
 - command.ExecuteNonQuery();//執(zhí)行存儲(chǔ)過程
 - flag=true;//正確完成任務(wù)
 - }
 - finally
 - {
 - command.Connection.Close();//關(guān)閉連接
 - }
 - returnflag;//返回成功與否的標(biāo)志
 - }
 - #endregion
 - }
 - }
 
【編輯推薦】
責(zé)任編輯:佚名 
                    來源:
                    博客園
 














 
 
 

 
 
 
 