代碼貼士
SqlConnection類:表示SQL Server數(shù)據(jù)庫的一個(gè)打開的連接。
State屬性:數(shù)據(jù)庫連接狀態(tài)。
Open()方法:打開數(shù)據(jù)庫連接。
2.關(guān)閉數(shù)據(jù)庫連接的Close()方法
關(guān)閉數(shù)據(jù)庫連接主要通過SqlConnection對(duì)象的Close()方法實(shí)現(xiàn)。自定義Close()方法關(guān)閉數(shù)據(jù)庫連接的代碼如下:
例程02 代碼位置:光盤\TM\01\SIS\ App_Code \ DataBase.cs
#region 關(guān)閉連接
/// <summary>
/// 關(guān)閉數(shù)據(jù)庫連接
/// </summary>
public void Close()
{
if (con != null) //判斷是否存在連接
con.Close();
}
#endregion
3.釋放數(shù)據(jù)庫連接資源的Dispose()方法
由于DataBase類使用System.IDisposable接口,IDisposable接口聲明了一個(gè)Dispose()方法,所以應(yīng)該完善此方法,用來釋放數(shù)據(jù)庫連接資源。
實(shí)現(xiàn)釋放數(shù)據(jù)庫連接資源的Dispose方法代碼如下:
例程03 代碼位置:光盤\TM\01\SIS\ App_Code \ DataBase.cs
#region 釋放數(shù)據(jù)庫連接資源
/// <summary>
/// 釋放資源
/// </summary>
public void Dispose()
{
// 確認(rèn)連接是否已經(jīng)關(guān)閉
if (con != null)
{
con.Dispose();
con = null;
}
}
#endregion
4.初始化SqlParameter參數(shù)值
本程序向數(shù)據(jù)庫中讀寫數(shù)據(jù)是以參數(shù)形式實(shí)現(xiàn)的(與使用存儲(chǔ)過程讀寫數(shù)據(jù)類似)。其中MakeInParam()方法用于傳入?yún)?shù),MakeParam()方法用于轉(zhuǎn)換參數(shù)。
實(shí)現(xiàn)MakeInParam()方法和MakeParam()方法的完整代碼如下:
例程04 代碼位置:光盤\TM\01\SIS\ App_Code \ DataBase.cs
#region傳入?yún)?shù)并且轉(zhuǎn)換為SqlParameter類型
/// <summary>
/// 傳入?yún)?shù)
/// </summary>
/// <param name="ParamName">存儲(chǔ)過程名稱或命令文本</param>
/// <param name="DbType">參數(shù)類型</param></param>
/// <param name="Size">參數(shù)大小</param>
/// <param name="Value">參數(shù)值</param>
/// <returns>新的parameter 對(duì)象</returns>
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
/// <summary>
/// 初始化參數(shù)值
/// </summary>
/// <param name="ParamName">存儲(chǔ)過程名稱或命令文本</param>
/// <param name="DbType">參數(shù)類型</param>
/// <param name="Size">參數(shù)大小</param>
/// <param name="Direction">參數(shù)方向</param>
/// <param name="Value">參數(shù)值</param>
/// <returns>新的 parameter 對(duì)象</returns>
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
if (Size > 0) //判斷數(shù)據(jù)類型大小
param = new SqlParameter(ParamName, DbType, Size);
else
param = new SqlParameter(ParamName, DbType);
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value;
return param;
}
#endregion
代碼貼士
SqlParameter類:用參數(shù)名稱、SqlDbType、大小和源列名稱初始化SqlParameter類的新實(shí)例。
Direction屬性:獲取或設(shè)置一個(gè)值,該參數(shù)值為只可輸入、只可輸出、雙向還是存儲(chǔ)過程返回值參數(shù)。
Value屬性:獲取或設(shè)置該參數(shù)的值。
5.執(zhí)行參數(shù)命令文本或SQL語句
RunProc()方法為可重載方法。其中,RunProc(string procName)方法主要用于執(zhí)行簡(jiǎn)單的數(shù)據(jù)庫添加、修改、刪除等操作(例如,SQL語句);RunProc(string procName, SqlParameter[] prams)方法主要用于執(zhí)行復(fù)雜的數(shù)據(jù)庫添加、修改、刪除等操作(帶參數(shù)SqlParameter的命令文本的SQL語句)。
實(shí)現(xiàn)可重載方法RunProc()的完整代碼如下:
例程05 代碼位置:光盤\TM\01\SIS\ App_Code \ DataBase.cs
#region 執(zhí)行參數(shù)命令文本(無數(shù)據(jù)庫中數(shù)據(jù)返回)
/// <summary>
/// 執(zhí)行命令
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">參數(shù)對(duì)象</param>
/// <returns></returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
//得到執(zhí)行成功返回值
return (int)cmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 直接執(zhí)行SQL語句
/// </summary>
/// <param name="procName">命令文本</param>
/// <returns></returns>
public int RunProc(string procName)
{
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.ExecuteNonQuery();
this.Close();
return 1;
}
#endregion