用于sqlServer数据库的sqlServerHelper.cs类,及其调用例子2011-10-13 14:57:05 我来说两句 收藏 我要投稿using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Data; using System.Data.sqlClient; namespace JonseTest { public 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); } } // 取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
<?xml version="1.0" encoding="utf-8">三, 读取 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, "test"); string ssql = "update test set name='name_jonse',remark='remark_jonse' where id=" + iMaxID; sError = string.Empty; bool bResult = sqlServerHelper.UpdateData(out sError, "修改成功"); else Common.displayMsg(this.Text, sError); InitGrid(); // 删除 sError = string.Empty; int iMaxID = sqlServerHelper.GetMaxID(out sError, "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); }摘自:keenweiwei的专栏
?xml>版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。