代碼貼士
ExecuteNonQuery()方法:對(duì)連接執(zhí)行Transact-SQL語句并返回受影響的行數(shù)。
this:this關(guān)鍵字引用類的當(dāng)前實(shí)例。
SqlCommand類:表示要對(duì)SQL Server數(shù)據(jù)庫執(zhí)行的一個(gè)Transact-SQL語句或存儲(chǔ)過程。
6.執(zhí)行查詢命令文本,并且返回DataSet數(shù)據(jù)集
RunProcReturn()方法為可重載方法,返回值為DataSet類型。功能分別為執(zhí)行帶參數(shù)SqlParameter的命令文本,并返回查詢DataSet結(jié)果集。下面代碼中RunProcReturn(string procName,SqlParameter[] prams,string tbName)方法主要用于執(zhí)行帶參數(shù)SqlParameter的查詢命令文本;RunProcReturn(string procName, string tbName)用于直接執(zhí)行查詢SQL語句。
可重載方法RunProcReturn()的完整代碼如下:
例程06 代碼位置:光盤\TM\01\SIS\ App_Code \ DataBase.cs
#region 執(zhí)行參數(shù)命令文本(有返回值)
/// <summary>
/// 執(zhí)行查詢命令文本,并且返回DataSet數(shù)據(jù)集
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">參數(shù)對(duì)象</param>
/// <param name="tbName">數(shù)據(jù)表名稱</param>
/// <returns></returns>
public DataSet RunProcReturn(string procName, SqlParameter[] prams,string tbName)
{
SqlDataAdapter dap=CreateDataAdaper(procName, prams);
DataSet ds = new DataSet();
dap.Fill(ds,tbName);
this.Close();
//得到執(zhí)行成功返回值
return ds;
}
/// <summary>
/// 執(zhí)行命令文本,并且返回DataSet數(shù)據(jù)集
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="tbName">數(shù)據(jù)表名稱</param>
/// <returns>DataSet</returns>
public DataSet RunProcReturn(string procName, string tbName)
{
SqlDataAdapter dap = CreateDataAdaper(procName, null);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
//得到執(zhí)行成功返回值
return ds;
}
#endregion
代碼貼士
SqlDataAdapter類:表示用于填充DataSet和更新SQL Server數(shù)據(jù)庫的一組數(shù)據(jù)命令和一個(gè)數(shù)據(jù)庫連接。
Fill()方法:在DataSet中添加或刷新行以匹配使用DataSet和DataTable名稱的數(shù)據(jù)源中的行。
7.將SqlParameter添加到SqlDataAdapter中
用CreateDataAdaper()方法創(chuàng)建一個(gè)SqlDataAdapter對(duì)象以此來執(zhí)行命令文本。其完整代碼如下:
例程07 代碼位置:光盤\TM\01\SIS\ App_Code \ DataBase.cs
#region 將命令文本添加到SqlDataAdapter
/// <summary>
/// 創(chuàng)建一個(gè)SqlDataAdapter對(duì)象以此來執(zhí)行命令文本
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">參數(shù)對(duì)象</param>
/// <returns></returns>
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
this.Open();
SqlDataAdapter dap = new SqlDataAdapter(procName,con);
dap.SelectCommand.CommandType = CommandType.Text; //執(zhí)行類型:命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter);
}
//加入返回參數(shù)
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return dap;
}
#endregion
代碼貼士
CommandType屬性:獲取或設(shè)置要對(duì)數(shù)據(jù)源執(zhí)行的Transact-SQL語句或存儲(chǔ)過程。CommandType屬性值如下:
StoredProcedure:存儲(chǔ)過程的名稱。
TableDirect:表的名稱。
Text:SQL文本命令(默認(rèn))。
Add()方法:添加SqlParameter對(duì)象。
8.將SqlParameter添加到SqlCommand中
用CreateCommand()方法創(chuàng)建一個(gè)SqlCommand對(duì)象以此來執(zhí)行命令文本。完整代碼如下:
例程08 代碼位置:光盤\TM\01\SIS\ App_Code \ DataBase.cs
#region 將命令文本添加到SqlCommand
/// <summary>
/// 創(chuàng)建一個(gè)SqlCommand對(duì)象以此來執(zhí)行命令文本
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams"命令文本所需參數(shù)</param>
/// <returns>返回SqlCommand對(duì)象</returns>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
//確認(rèn)打開連接
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.Text; //執(zhí)行類型:命令文本
//依次把參數(shù)傳入命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
//加入返回參數(shù)
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
#endregion