SqlHelper:带sqlParameter,对sql server增、册、查、改的公用方法2011-10-13 14:58:54 我来说两句 收藏 我要投稿using System.Data; using System.Data.SqlCient; #region ###jonse //共通函数 把sql语句执行的查询结果放入datatable中 // 传入sql语句,datatable名称,数据连接字符可选 public static DataTable GetDataTable(out string sEx, string sSql, string sDataTableName, string sConnStr = "", SqlParameter[] commandParameters = null) { sEx = string.Empty; if (string.IsNullOrEmpty(sDataTableName)) { sEx = "datatable的名字不能为空"; return null; } if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString; DataTable dt = new DataTable(); try { if (commandParameters == null) { dt = ExecuteDataTable(sConnStr, CommandType.Text, sSql); } else { dt = ExecuteDataTable(sConnStr, CommandType.StoredProcedure, sSql, commandParameters); } } catch (Exception ex) { sEx = ex.Message.ToString(); } finally { dt.TableName = sDataTableName; } return dt; } // 取dataset public static DataSet GetDataSet(out string sError, string sSQL, string sConnStr="") { DataSet ds = null; sError = string.Empty; try { if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString; SqlConnection conn = new SqlConnection(sConnStr); 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, "singleTbl"); 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 + "]","maxID"); 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, SqlParameter[] sqlParams=null,bool bUseTransaction = false, string sConnStr = "") { int iResult = 0; sError = string.Empty; if (string.IsNullOrEmpty(sConnStr)) sConnStr = DbHelperSQL.connectionString; if (!bUseTransaction) { try { SqlConnection conn = new SqlConnection(sConnStr); if (conn.State != ConnectionState.Open) conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = sSQL; if (sqlParams != null) { foreach (SqlParameter parm in sqlParams) cmd.Parameters.Add(parm); } iResult = cmd.ExecuteNonQuery(); } catch (Exception ex) { sError = ex.Message; iResult = -1; } } else // 使用事务 { SqlTransaction trans = null; try { SqlConnection conn = new SqlConnection(sConnStr); if (conn.State != ConnectionState.Open) conn.Open(); trans = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = sSQL; if (sqlParams != null) { foreach (SqlParameter parm in sqlParams) cmd.Parameters.Add(parm); } cmd.Transaction = trans; iResult = cmd.ExecuteNonQuery(); trans.Commit(); } catch (Exception ex) { sError = ex.Message; iResult = -1; trans.Rollback(); } } return iResult > 0; } #endregion ###jonse 提示:1,需要定义 DbHelperSQL.connectionString 变量 关于数据库连接字符串,一般有2种格式: (1),Windows验证 Common.ConnString = @"Initial Catalog=数据库名;Data Source=电脑名或IP地址;Integrated Security=SSPI"; (2), Sql混合验证 Common.ConnString = @"server=电脑名或IP地址;database=数据库名;uid=用户名;password=密码";2, 具体调用例子,与下面的相似:http://www.2cto.com/database/201110/107655.html摘自:keenweiwei的专栏
SqlHelper:带sqlParameter,对sql server增、册、查、改的公用方法
精选 转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
SQL增、删、改、查
SQL增、删、改、查
SQL增、删、改、查 -
SQL Server 2008 R2学习(二)增、删、改、查
1、2、3、4、5、6、7、8、
sql server 2008 r2 sql server 数据库 数据操作