在操作數據庫時,經常會用到自己封裝的SqlHelper。這里主要對SQLServer數據庫的Sqlhelper,主要用於在同一個連接中完成CRUD!
一.ADO.NET中的Connection詳解:
- 連接字符串
- 寫法一:
- "Data Source=服務器名; Initial Catalog=數據庫; User ID =用戶名; Password=密碼; Charset=UTF8; "
- 寫法二:
- "Server=服務器名; Database=數據庫; uid=用戶名; Password=密碼;Charser=UTF8"
注:Integrated Security = True;
解釋:integrated security=true 的意思是集成驗證,也就是說使用Windows驗證的方式去連接到數據庫服務器。這樣方式的好處是不需要在連接字符串中編寫用戶名和密碼,從一定程度上說提高了安全性。
-
Connection:
- Connection是實現了IDisposable接口的對象。使用Connection需要釋放資源。
using(Connection 對象) { //該方法體內容執行完后就自動釋放資源了 }
二.config配置文件:
<connectionStrings> <add name="constr" connectionString="server=127.0.0.1;user id=用戶名;password=密碼;database=數據庫"/> </connectionStrings>
三.SqlHelper:
/// <summary> /// 獲取web.config的連接字符串 /// </summary> private static readonly string connstr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; /// <summary> /// 將數據加載到本地,在本地對數據進行操作 /// </summary> /// <param name="sql">sql語句</param> /// <param name="parameter">參數化查詢</param> /// <returns>返回從數據庫中讀取到的DataTable表</returns> public static DataTable ExecuteQuery(string sql, params SqlParameter[] parameter) { using (SqlConnection conn = new SqlConnection(connstr)) using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = sql; cmd.Parameters.AddRange(parameter); DataTable tab = new DataTable(); using (SqlDataReader reader = cmd.ExecuteReader()) { tab.Load(reader); return tab; } } } /// <summary> /// 用於執行增加和刪除語句 /// </summary> /// <param name="sql">sql語句</param> /// <param name="parameter">參數化查詢</param> /// <returns>有多少語句執行成功</returns> public static int ExecuteNonQuery(string sql, params SqlParameter[] parameter) { using (SqlConnection conn = new SqlConnection(connstr)) using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = sql; cmd.Parameters.AddRange(parameter); return cmd.ExecuteNonQuery(); } } /// <summary> /// 執行語句后,返回第一行第一列的數據 /// </summary> /// <param name="sql"></param> /// <param name="parameter"></param> /// <returns>object類型的值</returns> public static object ExecuteScalar(string sql, params SqlParameter[] parameter) { using (SqlConnection conn = new SqlConnection(connstr)) using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = sql; cmd.Parameters.AddRange(parameter); return cmd.ExecuteScalar(); } } /// <summary> /// 在數據庫中,進行數據庫的查詢操作 /// </summary> /// <param name="sql"></param> /// <param name="parameter"></param> /// <returns></returns> public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameter) { SqlConnection conn = new SqlConnection(connstr); using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = sql; cmd.Parameters.AddRange(parameter); return cmd.ExecuteReader(CommandBehavior.CloseConnection); } }