概述C#數(shù)據(jù)庫(kù)操作類
作者:佚名
這里介紹C#數(shù)據(jù)庫(kù)操作類主要包括兩類方法:一類用來(lái)直接執(zhí)行SQL語(yǔ)句,另一類用來(lái)執(zhí)行存儲(chǔ)過(guò)程,其中的數(shù)據(jù)庫(kù)連接字符串的數(shù)據(jù)庫(kù)路徑采用了絕對(duì)路徑。
C#數(shù)據(jù)庫(kù)操作類的封裝是任何工程都必不可少地,本例當(dāng)然也不例外。C#數(shù)據(jù)庫(kù)操作類主要包括兩類方法:一類用來(lái)直接執(zhí)行SQL語(yǔ)句,另一類用來(lái)執(zhí)行存儲(chǔ)過(guò)程。
其中的數(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();//打開(kāi)數(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();//打開(kāi)連接
- 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)閉,則打開(kāi)
- 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();//如果未打開(kāi)連接,則打開(kāi)
- SqlCommandCom=newSqlCommand(sql,Con);
- Com.ExecuteNonQuery();
- if(closeConnection)Con.Close();//如果需要關(guān)閉,則關(guān)閉連接
- }
- #endregion
- #region執(zhí)行存儲(chǔ)過(guò)程的代碼
- //輸入存儲(chǔ)過(guò)程名稱,執(zhí)行查詢存儲(chǔ)過(guò)程
- publicDataSetgetDataSet(stringprodureName)
- {
- command.Connection=Con;//賦予連接對(duì)象
- //執(zhí)行的類型為存儲(chǔ)過(guò)程
- command.CommandType=CommandType.StoredProcedure;
- command.CommandText=produreName;//賦予執(zhí)行的存儲(chǔ)過(guò)程名字
- DataSetdt=newDataSet();
- SqlDataAdapterda=newSqlDataAdapter(command);
- Con.Open();//打開(kāi)連接
- da.Fill(dt);//填充數(shù)據(jù)
- command.Connection.Close();
- returndt;//返回?cái)?shù)據(jù)集
- }
- //輸入存儲(chǔ)過(guò)程名,執(zhí)行非查詢存儲(chǔ)過(guò)程
- publicboolexec(stringprodureName)
- {
- boolflag=false;//任務(wù)是否正確執(zhí)行,初始化為false
- command.Connection=Con;//賦予command對(duì)象以數(shù)據(jù)連接
- command.CommandType=CommandType.StoredProcedure;
- command.CommandText=produreName;//存儲(chǔ)過(guò)程名稱
- try
- {
- command.ExecuteNonQuery();//執(zhí)行存儲(chǔ)過(guò)程
- flag=true;//正確完成任務(wù)
- }
- finally
- {
- command.Connection.Close();//關(guān)閉連接
- }
- returnflag;//返回成功與否的標(biāo)志
- }
- #endregion
- }
- }
【編輯推薦】
責(zé)任編輯:佚名
來(lái)源:
博客園