好用的SQLHelper類(不斷完善中)



using
System; using System.Data; using System.Data.SqlClient; using System.Configuration; /// <summary> /// 2013年6月10日 10:27:52 /// </summary> public class SqlHelperXhf { #region 初始化參數 public SqlConnection myConn public SqlConnection myConn = null; #endregion #region 構造函數 SqlHelperXhf() public SqlHelperXhf() { myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString); } #endregion #region 重載連接字符串 +SqlHelperXhf(string WebConfigConnectionStringsName) /// <summary> /// 重載連接字符串 /// </summary> /// <param name="WebConfigConnectionStringsName"></param> public SqlHelperXhf(string WebConfigConnectionStringsName) { if (WebConfigConnectionStringsName.ToLower().Contains("data source=")) { myConn = new SqlConnection(WebConfigConnectionStringsName); } else { myConn = new SqlConnection(ConfigurationManager.ConnectionStrings[WebConfigConnectionStringsName].ConnectionString); } } #endregion #region 析構 ~SqlHelperXhf() ~SqlHelperXhf() { myConn.Close(); myConn.Dispose(); } #endregion #region 返回SqlDataAdapter + SqlDataAdapter Getsda(string str) /// <summary> /// 返回sda /// </summary> /// <param name="str">sql語句</param> /// <returns>SqlDataAdapter</returns> public SqlDataAdapter Getsda(string str) { return new SqlDataAdapter(str, myConn); } #endregion #region 返回第一行的第一列的數據 +object ExecuteScalar(string sql) /// <summary> /// 返回第一行的第一列 /// </summary> /// <param name="sql">需要查詢的SQL語句</param> /// <returns>返回Object類型的數據</returns> public object ExecuteScalar(string sql) { SqlCommand sqlCommand = new SqlCommand(sql, this.myConn); try { if (myConn.State == ConnectionState.Closed) myConn.Open(); object reObj = sqlCommand.ExecuteScalar(); myConn.Close(); return reObj; } catch (Exception ex) { myConn.Close(); throw new Exception(ex + "<\r\n>" + sql); } } #endregion #region 返回第一行第一列的數據 +object ExecuteScalar(string sql, params SqlParameter[] sqlParames) /// <summary> /// 返回第一行第一列的數據 /// </summary> /// <param name="sql">需要查詢的SQL語句</param> /// <param name="sqlParames">SQL語句中的參數</param> /// <returns>object類型的數據</returns> public object ExecuteScalar(string sql, params SqlParameter[] sqlParames) { SqlCommand sqlCommand = new SqlCommand(sql, this.myConn); try { if (myConn.State == ConnectionState.Closed) myConn.Open(); sqlCommand.Parameters.Clear(); sqlCommand.Parameters.AddRange(sqlParames); object reObj = sqlCommand.ExecuteScalar(); myConn.Close(); return reObj; } catch (Exception ex) { myConn.Close(); throw new Exception(ex + "<\r\n>" + sql); } } #endregion #region 返回數量 +int Count(string sql) public int Count(string sql) { return Convert.ToInt32(ExecuteScalar(sql)); } #endregion #region 返回數量 +int Count(string sql, params SqlParameter[] sqlParames) public int Count(string sql, params SqlParameter[] sqlParames) { return Convert.ToInt32(ExecuteScalar(sql, sqlParames)); } #endregion #region 執行SQL語句。返回受影響行數 +int ExecuteNonQuery(string sql) public int ExecuteNonQuery(string sql) { SqlCommand sqlCommand = new SqlCommand(sql, this.myConn); try { if (myConn.State == ConnectionState.Closed) myConn.Open(); int reInt = sqlCommand.ExecuteNonQuery(); myConn.Close(); return reInt; } catch (Exception ex) { myConn.Close(); throw new Exception(ex + "<\r\n>" + sql); } } #endregion #region 執行SQL語句。返回 DataSet +DataSet ExecuteDataSet(string sql) public DataSet ExecuteDataSet(string sql) { SqlCommand sqlCommand = new SqlCommand(sql, this.myConn); DataSet retrunDataSet = new DataSet(); SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); try { sqlDataAdapter.Fill(retrunDataSet); return retrunDataSet; } catch (Exception ex) { throw new Exception(ex + "<\r\n>" + sql); } } #endregion #region 執行SQL語句。返回 DataTable +DataTable ExecuteDataTable(string sql) public DataTable ExecuteDataTable(string sql) { SqlCommand sqlCommand = new SqlCommand(sql, this.myConn); DataTable retrunDataTable = new DataTable(); SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); try { sqlDataAdapter.Fill(retrunDataTable); return retrunDataTable; } catch (Exception ex) { throw new Exception(ex + "<\r\n>" + sql); } } #endregion #region 執行帶參數的SQL語句。返回受影響行數 +int ExecuteNonQuery(string sql, params SqlParameter []sqlParames) public int ExecuteNonQuery(string sql, params SqlParameter [] sqlParames) { SqlCommand sqlCommand = new SqlCommand(sql, this.myConn); if (sqlParames.Length>0) { sqlCommand.Parameters.Clear(); sqlCommand.Parameters.AddRange(sqlParames); } try { if (myConn.State == ConnectionState.Closed) { myConn.Open(); } int reInt = sqlCommand.ExecuteNonQuery(); myConn.Close(); return reInt; } catch (Exception ex) { myConn.Close(); throw new Exception(ex + "<\r\n>" + sql); } } #endregion #region 執行帶參數的sql + DataSet ExecuteDataSet(string sql, params SqlParameter[] sqlParames) /// <summary> /// 執行帶參數的sql /// </summary> /// <param name="sql"></param> /// <param name="sqlParames"></param> /// <returns></returns> public DataSet ExecuteDataSet(string sql, params SqlParameter[] sqlParames) { SqlCommand cmd = new SqlCommand(sql, myConn); if (sqlParames.Length > 0) { cmd.Parameters.Clear(); cmd.Parameters.AddRange(sqlParames); } DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(cmd); try { sda.Fill(ds); return ds; } catch (Exception ex) { throw new Exception(ex + "<\r\n>" + sql); } return ds; } #endregion #region 執行帶參數的sql + DataTable ExecuteDataTable(string sql, params SqlParameter[] sqlParames) /// <summary> /// 執行帶參數的sql /// </summary> /// <param name="sql"></param> /// <param name="sqlParames"></param> /// <returns></returns> public DataTable ExecuteDataTable(string sql, params SqlParameter[] sqlParames) { SqlCommand cmd = new SqlCommand(sql, myConn); if (sqlParames.Length > 0) { cmd.Parameters.Clear(); cmd.Parameters.AddRange(sqlParames); } DataSet ds = new DataSet(); DataTable dt = new DataTable(); SqlDataAdapter sda = new SqlDataAdapter(cmd); try { sda.Fill(dt); return dt; } catch (Exception ex) { throw new Exception(ex + "<\r\n>" + sql); } return dt; } #endregion #region 執行一個帶參數的存儲過程,返回 DataSet +DataSet RunProcedure(string commandText, SqlParameter [] commandParameters) /// <summary> /// 執行一個帶參數的存儲過程,返回 DataSet /// 格式 DataSet ds = ExecuteDataset("GetOrders", new SqlParameter("@prodid", 24)); /// </summary> /// <param name="commandText"></param> /// <param name="commandParameters"></param> /// <returns></returns> public DataSet RunProcedure(string commandText, SqlParameter []commandParameters) { //創建一個命令 SqlCommand sqlCommand = new SqlCommand(); sqlCommand.CommandText = commandText; sqlCommand.CommandType = CommandType.StoredProcedure; sqlCommand.Connection = myConn; sqlCommand.Parameters.Clear(); sqlCommand.Parameters.AddRange(commandParameters); //創建 DataAdapter 和 DataSet SqlDataAdapter da = new SqlDataAdapter(sqlCommand); DataSet ds = new DataSet(); try { da.Fill(ds); sqlCommand.Parameters.Clear(); //返回結果集 return ds; } catch (Exception ex) { string parasList = ""; foreach (SqlParameter para in commandParameters) { parasList += "<\r\n>@" + para.ParameterName + ":" + para.Value; } throw new Exception(ex + "<\r\n>" + commandText + parasList); } } #endregion #region 執行一個存儲過程,不返回結果 +void RunProcedureNoReturn(string commandText, SqlParameter commandParameters) public void RunProcedureNoReturn(string commandText, SqlParameter []commandParameters) { //創建一個命令 SqlCommand sqlCommand = new SqlCommand(); sqlCommand.CommandText = commandText; sqlCommand.CommandType = CommandType.StoredProcedure; sqlCommand.Connection = myConn; sqlCommand.Parameters.AddRange(commandParameters); try { if (myConn.State == ConnectionState.Closed) myConn.Open(); sqlCommand.ExecuteNonQuery(); myConn.Close(); } catch (Exception ex) { myConn.Close(); string parasList = ""; foreach (SqlParameter para in commandParameters) { parasList += "<\r\n>@" + para.ParameterName + ":" + para.Value; } throw new Exception(ex + "<\r\n>" + commandText + parasList); } } #endregion }

歡迎廣大同胞測試使用,並提出寶貴整改意見


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM