一個數據操作底層類
2024-07-21 02:23:24
供稿:網友
我對這個類不是很滿意,如果你有改進意見請聯系我,不勝感激.
主要將對數據庫的操作簡單封裝了一下
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.diagnostics;
using system.configuration;
using system.data.sqlclient;
namespace addr.admin.executesqlcommand
{
?///
?/// executecommand 的摘要說明:數據處理層。
?///
?public class executecommand
?{
??string cnstr;
??string errormessage="";
??bool successful=true;
??//構造函數將連接字符串賦給變量
??public executecommand()
??{
???//
???// todo: 在此處添加構造函數邏輯
???//
???cnstr=configurationsettings.appsettings["cn"];
??}
??//枚舉執行sqlcommand的類型
??public enum cmdtype
??{
???executenonquery=1,
???executescalar,
???executereader,
???executedataset,
???executeid
??};
??//返回是否執行成功的屬性
??public bool rlt
??{
???get
???{
????return successful;
???}
??}
??//返回錯誤信息
??public string msg
??{
???get
???{
????return errormessage;
???}
??}
??//執行命令的函數
??public object executing(sqlcommand cm,cmdtype type)
??{
???sqlconnection cn;
???try
???{
????cn=new sqlconnection(cnstr);
????cn.open();
????cm.connection=cn;
????switch(type)
????{
?????case cmdtype.executenonquery:
??????try
??????{
???????cm.executenonquery();
???????cn.close();
??????}
??????catch(exception ex)
??????{
???????errormessage="error executing 'executenonquery'."+ex.message;
???????successful=false;
??????}
??????break;
?????case cmdtype.executereader:
??????try
??????{
???????sqldataadapter da=new sqldataadapter(cm.commandtext,cn);
???????dataset ds=new dataset();
???????da.fill(ds,"first");
???????da.dispose();
???????cn.close();
???????return ds.tables["first"];
??????}
??????catch
??????{
???????errormessage="error executing 'executereader'.";
???????successful=false;
??????}
??????break;
?????case cmdtype.executescalar:
??????try
??????{
???????int result=(int)cm.executescalar();
???????cn.close();
???????return result;
??????}
??????catch
??????{
???????errormessage="error executing 'executescalar'.'";
???????successful=false;
??????}
??????break;
?????case cmdtype.executedataset:
??????try
??????{
???????sqldataadapter da=new sqldataadapter(cm.commandtext,cn);
???????dataset ds=new dataset();
???????da.fill(ds);
???????cn.close();
???????return ds;
??????}
??????catch
??????{
???????errormessage="error executing 'executedataset'.";
???????successful=false;
??????}
??????break;
?????case cmdtype.executeid:
??????try
??????{
???????string rst="";
???????sqldatareader dr=cm.executereader();
???????if(dr.read())
???????{
????????rst=dr["id"].tostring();
???????}
???????dr.close();
???????cn.close();
???????return rst;
??????}
??????catch
??????{
???????errormessage="error executing 'executeid'.";
???????successful=false;
??????}
??????break;
?????default:
??????errormessage="error executing unknown sqlcommand.";
??????successful=false;
??????break;
????}
????return successful;
???}
???catch
???{
????successful=false;
????errormessage="error opening data connection.";
????return successful;
???}
??}
?}
}