封裝SqlHelper數據庫
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace Student_MI { /// <summary> /// 數據庫助手類 /// </summary> public class SqlHelper { private SqlConnection conn = null;//表示一個到 SQL Server 數據庫的打開的鏈接 private SqlCommand cmd = null; //表示要對 SQL Server 數據庫執行的一個 Transact-SQL 語句或存儲過程 private SqlDataReader sdr = null; //提供一種從 SQL Server 數據庫讀取行的只進流的方式 /// <summary> /// 鏈接數據庫 /// </summary> public SqlHelper() { string connStr = "Data Source=.;Initial Catalog=StudentManager;Integrated Security=True"; conn = new SqlConnection(connStr); } /// <summary> /// 打開數據庫鏈接 /// </summary> /// <returns></returns> private SqlConnection GetConn() { if (conn.State == ConnectionState.Closed) { conn.Open(); } return conn; } /// <summary> /// 執行不帶參數的增刪改SQL語句或存儲過程 /// </summary> /// <param name="cmdText">增刪改SQL語句或存儲過程</param> /// <param name="ct">命令類型</param> /// <returns></returns> public int ExecuteNonQuery(string cmdText, CommandType ct)// CommandType命令類型 { int res; try { cmd = new SqlCommand(cmdText, GetConn());//向打開的數據庫中插入執行命令 cmd.CommandType = ct; //設置要執行命令的類型 res = cmd.ExecuteNonQuery();//執行增刪查改用到的方法,返回受影響的行數,是一個整數類型 } catch (Exception ex) { throw ex; } finally { if (conn.State == ConnectionState.Open)//判斷鏈接是否處於打開狀態 { conn.Close(); } } return res; } /// <summary> /// 執行帶參數的增刪改SQL語句或存儲過程 /// </summary> /// <param name="cmdText">增刪改SQL語句或存儲過程</param> /// <param name="ct">命令類型</param> /// <returns></returns> public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct) { int res; try { using (cmd = new SqlCommand(cmdText, GetConn())) { cmd.CommandType = ct; //cmd.Parameters的Add方法是增長一個參數,增長多個參數的的時候使用一個foreach循環而已 將指定的 SqlParameter 對象添加到 SqlParameterCollection 中 //cmd.Parameters的AddRange方法是增長一個參數的數組 將值數組添加到 SqlParameterCollection 的末尾 cmd.Parameters.AddRange(paras); res = cmd.ExecuteNonQuery();//執行增刪查改用到的方法,返回受影響的行數,是一個整數類型 } } catch (Exception ex) { throw ex; } return res; } /// <summary> /// 執行查詢SQL語句或存儲過程 /// </summary> /// <param name="cmdText">查詢SQL語句或存儲過程</param> /// <param name="ct">命令類型</param> /// <returns>返回DataTable對象</returns> public DataTable ExecuteQuery(string cmdText, CommandType ct) { DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct; try { using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(sdr); } } catch (Exception ex) { throw ex; } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } } return dt; } /// <summary> /// 執行帶參數的查詢SQL語句或存儲過程 /// </summary> /// <param name="cmdText">查詢SQL語句或存儲過程</param> /// <param name="paras">參數集合</param> /// <param name="ct">命令類型</param> /// <returns></returns> public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct) { DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct; cmd.Parameters.AddRange(paras); using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(sdr); } return dt; } } }