using system;using system.collections.generic;using system.linq;using system.text;using system.configuration;using system.data;using system.data.sqlclient;namespace demo{ public abstract class sqlserverhelper { public static string connstr
using system;using system.collections.generic;using system.linq;using system.text;using system.configuration;using system.data;using system.data.sqlclient;namespace demo{ public abstract class sqlserverhelper { public static string connstring = string.empty; public static string conn_config_str_name = string.empty; public static string conn_server = string.empty; public static string conn_dbname = string.empty; public static string conn_uid = string.empty; public static string conn_pwd = string.empty; private static string _connstring { get { if (!string.isnullorempty(connstring)) return connstring; object oconn = configurationmanager.connectionstrings[conn_config_str_name]; if (oconn != null && oconn.tostring() != ) return oconn.tostring(); return string.format(@server={0};database={1};uid={2};password={3}, conn_server, conn_dbname, conn_uid, conn_pwd); } } // 测试连接 public static bool testconn() { sqlconnection myconn = null; bool bresult = false; try { myconn = new sqlconnection(_connstring); myconn.open(); } catch (exception ex) { } finally { if (myconn != null && myconn.state.tostring() == open) bresult = true; } myconn.close(); return bresult; } // 取datatable public static datatable getdatatable(out string serror, string ssql) { datatable dt = null; serror = string.empty; try { sqlconnection conn = new sqlconnection(_connstring); sqlcommand comm = new sqlcommand(); comm.connection = conn; comm.commandtext = ssql; sqldataadapter dapter = new sqldataadapter(comm); dt = new datatable(); dapter.fill(dt); } catch (exception ex) { serror = ex.message; } return dt; } // 取dataset public static dataset getdataset(out string serror, string ssql) { dataset ds = null; serror = string.empty; try { sqlconnection conn = new sqlconnection(_connstring); sqlcommand comm = new sqlcommand(); comm.connection = conn; comm.commandtext = ssql; sqldataadapter dapter = new sqldataadapter(comm); ds = new dataset(); dapter.fill(ds); } catch (exception ex) { serror = ex.message; } return ds; } // 取某个单一的元素 public static object getsingle(out string serror, string ssql) { datatable dt = getdatatable(out serror, ssql); if (dt != null && dt.rows.count > 0) { return dt.rows[0][0]; } return null; } // 取最大的id public static int32 getmaxid(out string serror, string skeyfield, string stablename) { datatable dt = getdatatable(out serror, select isnull(max([ + skeyfield + ]),0) as maxid from [ + stablename + ]); if (dt != null && dt.rows.count > 0) { return convert.toint32(dt.rows[0][0].tostring()); } return 0; } // 执行 insert,update,delete 动作,也可以使用事务 public static bool updatedata(out string serror, string ssql, bool busetransaction = false) { int iresult = 0; serror = string.empty; if (!busetransaction) { try { sqlconnection conn = new sqlconnection(_connstring); if (conn.state != connectionstate.open) conn.open(); sqlcommand comm = new sqlcommand(); comm.connection = conn; comm.commandtext = ssql; iresult = comm.executenonquery(); } catch (exception ex) { serror = ex.message; iresult = -1; } } else // 使用事务 { sqltransaction trans = null; try { sqlconnection conn = new sqlconnection(_connstring); if (conn.state != connectionstate.open) conn.open(); trans = conn.begintransaction(); sqlcommand cmd = new sqlcommand(); cmd.connection = conn; cmd.commandtext = ssql; cmd.transaction = trans; iresult = cmd.executenonquery(); trans.commit(); } catch (exception ex) { serror = ex.message; iresult = -1; trans.rollback(); } } return iresult > 0; } }}
调用方法:
一,先设置数据库连接的信息
//sqlserverhelper.connstring = @server=电脑名 或 电脑ip;database=数据库名;uid=数据库登录名;password=数据库登录密码;
sqlserverhelper.conn_config_str_name = @connstring; // connstring的信息在 app.config里设置 //sqlserverhelper.conn_server = @电脑名 或 电脑ip; //sqlserverhelper.conn_dbname = 数据库名; //sqlserverhelper.conn_uid = 数据库登录名; //sqlserverhelper.conn_pwd = 数据库登录密码;
二, app.config
三, 读取 datatable / dataset 数据
private void initgrid() {
string ssql = select * from test;
string serror = string.empty;
datatable dt = sqlserverhelper.getdatatable(out serror, ssql);
//dataset dt = sqlserverhelper.getdataset(out serror, ssql);
datagridview1.datasource = dt;
if (!string.isnullorempty(serror)) common.displaymsg(this.text, serror);
}
四,插入,修改,删除 数据 (都调用sqlserverhelper.updatedata方法)
// 插入
string serror = string.empty; int imaxid = sqlserverhelper.getmaxid(out serror, id, test) + 1; string ssql = insert into test select + imaxid + ,'name + imaxid + ','remark + imaxid + '; serror = string.empty; bool bresult = sqlserverhelper.updatedata(out serror, ssql, true); if (bresult) common.displaymsg(this.text, 插入成功); else common.displaymsg(this.text, serror);
initgrid();
// 修改
serror = string.empty; int imaxid = sqlserverhelper.getmaxid(out serror, id, test); string ssql = update test set name='name_jonse',remark='remark_jonse' where id= + imaxid; serror = string.empty; bool bresult = sqlserverhelper.updatedata(out serror, ssql, true); if (bresult) common.displaymsg(this.text, 修改成功); else common.displaymsg(this.text, serror);
initgrid();
// 删除
serror = string.empty; int imaxid = sqlserverhelper.getmaxid(out serror, id, test); string ssql = delete from test where id= + imaxid; serror = string.empty; bool bresult = sqlserverhelper.updatedata(out serror, ssql); if (bresult) common.displaymsg(this.text, 删除成功); else common.displaymsg(this.text, serror);
initgrid();
五,其它
public static void displaymsg(string scaption, string smsg) { smsg = smsg.trimend('!').trimend('!') + !; messagebox.show(smsg, scaption); }