正文

供求信息網(wǎng)(8)

ASP.NET項(xiàng)目開發(fā)案例全程實(shí)錄(第2版) 作者:明日科技


代碼貼士

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


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)