一個自定義的C#數據庫操作基礎類 SqlHelper
SqlHelper其實是我們自己編寫的一個類,使用這個類目的就是讓使用者更方便、更安全的對數據庫的操作,既
是除了在SqlHelper類以外的所有類將不用引用對數據庫操作的任何類與語句,無須擔心數據庫的連接與關閉的問題。
{
public class SQLHelper
{
private string strConn = null;
private SqlConnection Conn = null;
private SqlCommand Cmd = null;
private SqlDataReader Sqlsdr = null;
public SQLHelper()
{
//利用反射連接數據庫
strConn = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;
//strConn = "data source=192.168.24.83;initial catalog=NewsSystem;user id=sa;password=123456";
Conn = new SqlConnection(strConn);
}
/// <summary>
/// 狀態
/// </summary>
/// <returns>SqlConnection</returns>
private SqlConnection GetConn()
{
if (Conn.State == ConnectionState.Closed)
{
Conn.Open();
}
return Conn;
}
/// <summary>
/// 執行不帶參數的增刪改操作
/// </summary>
/// <param name="CmdText">執行的SQL語句或存儲過程</param>
/// <param name="CmdType">類型</param>
/// <returns>增刪改的操作數</returns>
public int ExecuteNonQuery(string CmdText, CommandType CmdType)
{
//數據庫連接語句
int res;
try
{
Cmd = new SqlCommand(CmdText, GetConn());
Cmd.CommandType = CmdType;
res = Cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
}
}
return res;
}
/// <summary>
/// 執行帶參數的增刪改操作
/// </summary>
/// <param name="CmdText">執行的SQL語句或存儲過程</param>
/// <param name="Parameters">參數</param>
/// <param name="CmdType">類型(SQL語句或存儲過程)</param>
/// <returns>增刪改的操作數</returns>
public int ExecuteNonQuery(string CmdText, SqlParameter[] Parameters, CommandType CmdType)
{
int res;
try
{
Cmd.Parameters.AddRange(Parameters);
Cmd = new SqlCommand(CmdText, GetConn());
Cmd.CommandType = CmdType;
res = Cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
}
}
return res;
}
/// <summary>
/// 不帶參數的查詢
/// </summary>
/// <param name="CmdText">執行的SQL語句或存儲過程</param>
/// <param name="CmdType">類型</param>
/// <returns>查詢的數據</returns>
public DataTable ExecuteQuery(string CmdText, CommandType CmdType)
{
DataTable dt = new DataTable();
using (Sqlsdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
Cmd = new SqlCommand(CmdText, GetConn());
Cmd.CommandType = CmdType;
dt.Load(Sqlsdr);
}
return dt;
}
/// <summary>
/// 帶參數的查詢
/// </summary>
/// <param name="CmdText">SQL語句或存儲過程</param>
/// <param name="Parameters">參數</param>
/// <param name="CmdType">類型</param>
/// <returns>查詢的數據</returns>
public DataTable ExecuteQuery(string CmdText, SqlParameter[] Parameters, CommandType CmdType)
{
DataTable dt = new DataTable();
using (Sqlsdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
Cmd = new SqlCommand(CmdText, GetConn());
Cmd.CommandType = CmdType;
Cmd.Parameters.AddRange(Parameters);
dt.Load(Sqlsdr);
}
return dt;
}
}
}</pre>
本文由用戶 b5cw 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!