...
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 using System.Configuration; 7 using System.Data; 8 using System.Data.SqlClient; 9 using System.Web.UI.WebControls; 10 11 namespace _20160308 12 { 13 public class SqlHelper1 14 { 15 #region 連接字元串connStr 16 private static readonly string connStr = ConfigurationManager.ConnectionStrings["aspcourse"].ConnectionString; 17 //private static readonly string connStr = System.Configuration.ConfigurationSettings.AppSettings["aspcourse"].ToString().Trim(); 18 #endregion 19 20 #region ExecuteNonQuery執行非查詢語句--不是Select 而是Insert into, Delete where, Update where 21 /// <summary> 22 /// 執行非查詢語句 23 /// </summary> 24 /// <param name="sql">要執行的Sql語句(也可能是存儲過程的名字,目前還不知道那時撒東東)</param> 25 /// <param name="cmdType">要執行的類型(是存儲過程還)是Sql語句[記得查下存儲過程是什麼鬼]</param> 26 /// <param name="param">要執行的Sql語句的數組,params是可選參數,0個或者多個.可選參數只能放在最後---語法規定,No Why!</param> 27 /// <returns>返回受影響的行數---也就是查詢到的記錄數嘛</returns> 28 public static int ExecuteNonQuery(string sql, CommandType cmdType, params SqlParameter[] param) 29 { 30 using(SqlConnection conn = new SqlConnection(connStr)) 31 { 32 conn.Open(); 33 using(SqlCommand cmd = new SqlCommand(sql, conn)) 34 { 35 cmd.CommandType = cmdType; 36 if (param != null && param.Length > 0) 37 { 38 cmd.Parameters.AddRange(param); 39 } 40 int Add_Rows = cmd.ExecuteNonQuery(); 41 cmd.Parameters.Clear();//清空SqlCommand的參數列表---看出來沒,param是SqlCommand對象的. 42 return Add_Rows; 43 } 44 } 45 } 46 #endregion 47 48 #region ExecuteScalar執行查詢語句---select 49 /// <summary> 50 /// 執行查詢語句 51 /// </summary> 52 /// <param name="sql">要執行的Sql語句(也可能是存儲過程的名字,目前還不知道那時撒東東)</param> 53 /// <param name="cmdType">要執行的類型(是存儲過程還)是Sql語句[記得查下存儲過程是什麼鬼]</param> 54 /// <param name="param">要執行的Sql語句的數組,params是可選參數,0個或者多個.可選參數只能放在最後---語法規定,No Why!</param> 55 /// <returns>返回所查詢的結果集的第一行第一列----註意是object類型(為撒不用泛型呢?-->記得改)</returns> 56 public static object ExecuteScalar(string sql, CommandType cmdType, params SqlParameter[] param) 57 { 58 using (SqlConnection conn = new SqlConnection(connStr)) 59 { 60 conn.Open(); 61 using (SqlCommand cmd = new SqlCommand(sql, conn)) 62 { 63 cmd.CommandType = cmdType; 64 if (param != null && param.Length > 0) 65 { 66 cmd.Parameters.AddRange(param); 67 } 68 69 cmd.Parameters.Clear();//清空SqlCommand的參數列表---看出來沒,param是SqlCommand對象的. 70 return cmd.ExecuteScalar(); 71 } 72 } 73 } 74 #endregion 75 76 #region 讀取ExecuteReader--要求一直連接著 77 /// <summary> 78 /// 讀取DataReader 79 /// </summary> 80 /// <param name="sql">要執行的Sql語句(也可能是存儲過程的名字,目前還不知道那時撒東東)</param> 81 /// <param name="cmdType">要執行的類型(是存儲過程還)是Sql語句[記得查下存儲過程是什麼鬼]</param> 82 /// <param name="param">要執行的Sql語句的數組,params是可選參數,0個或者多個.可選參數只能放在最後---語法規定,No Why!</param> 83 /// <returns>返回SqlDataReader對象</returns> 84 public static SqlDataReader ExecuteReader(string sql, CommandType cmdType, params SqlParameter[] param) 85 { 86 //額,為什麼不用using是吧,因為資料庫要一直連著啊.---如果我沒猜錯的話. 87 SqlConnection conn = new SqlConnection(connStr); 88 SqlCommand cmd = new SqlCommand(sql, conn); 89 SqlDataReader dr = null; 90 try 91 { 92 conn.Open(); 93 if (conn.State != ConnectionState.Open) 94 throw new Exception(); 95 cmd.CommandType = cmdType; 96 if (param != null && param.Length > 0) 97 { 98 cmd.Parameters.AddRange(param); 99 } 100 101 dr = cmd.ExecuteReader(); 102 } 103 catch 104 { 105 //what should I do? 106 //可以什麼都不做,哥直接拋給上層的catch--對否? 107 } 108 finally 109 { 110 cmd.Parameters.Clear();//清空SqlCommand的參數列表---看出來沒,param是SqlCommand對象的. 111 } 112 return dr; 113 } 114 #endregion 115 116 #region 獲得GetDataTable 117 /// <summary> 118 /// 獲得DataTable 119 /// </summary> 120 /// <param name="sql">要執行的Sql語句(也可能是存儲過程的名字,目前還不知道那時撒東東)</param> 121 /// <param name="cmdType">要執行的類型(是存儲過程還)是Sql語句[記得查下存儲過程是什麼鬼]</param> 122 /// <param name="param">要執行的Sql語句的數組,params是可選參數,0個或者多個.可選參數只能放在最後---語法規定,No Why!</param> 123 /// <returns>返回DataTable數據表</returns> 124 public static DataTable GetDataTable(string sql, CommandType cmdType, params SqlParameter[] param) 125 { 126 using(SqlConnection conn = new SqlConnection(connStr)) 127 { 128 conn.Open(); 129 using(SqlCommand cmd = new SqlCommand(sql,conn)) 130 { 131 cmd.CommandType = cmdType; 132 if (param != null && param.Length > 0) 133 { 134 cmd.Parameters.AddRange(param); 135 } 136 SqlDataAdapter adapter = new SqlDataAdapter(cmd); 137 //就一張表,可以獲得多張表嗎? 138 DataTable tb = new DataTable(); 139 adapter.Fill(tb); 140 return tb; 141 } 142 } 143 } 144 #endregion 145 146 #region 獲得GetDataSet 147 /// <summary> 148 /// 獲得DataSet 149 /// </summary> 150 /// <param name="sql">要執行的Sql語句(也可能是存儲過程的名字,目前還不知道那時撒東東)</param> 151 /// <param name="cmdType">要執行的類型(是存儲過程還)是Sql語句[記得查下存儲過程是什麼鬼]</param> 152 /// <param name="param">要執行的Sql語句的數組,params是可選參數,0個或者多個.可選參數只能放在最後---語法規定,No Why!</param> 153 /// <returns>返回一個DataSet數據集</returns> 154 public static DataSet GetDataSet(string sql, CommandType cmdType, params SqlParameter[] param) 155 { 156 using (SqlConnection conn = new SqlConnection(connStr)) 157 { 158 conn.Open(); 159 using (SqlCommand cmd = new SqlCommand(sql, conn)) 160 { 161 cmd.CommandType = cmdType; 162 if (param != null && param.Length > 0) 163 { 164 cmd.Parameters.AddRange(param); 165 } 166 SqlDataAdapter adapter = new SqlDataAdapter(cmd); 167 DataSet ds = new DataSet(); 168 adapter.Fill(ds); 169 return ds; 170 } 171 } 172 } 173 #endregion 174 } 175 }
1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- 3 有關如何配置 ASP.NET 應用程式的詳細信息,請訪問 4 http://go.microsoft.com/fwlink/?LinkId=169433 5 --> 6 <configuration> 7 <connectionStrings> 8 <add name="LibrarySystem" 9 connectionString="Database=LibrarySystem; 10 Server=localhost; 11 Integrated Security=false; 12 Uid=sa;Password=123;" 13 providerName="System.Data.SqlClient"/> 14 </connectionStrings> 15 16 <system.web> 17 <compilation debug="true" targetFramework="4.5" /> 18 <httpRuntime targetFramework="4.5" /> 19 </system.web> 20 </configuration>