代码贴士
ExecuteNonQuery()方法:对连接执行Transact-SQL语句并返回受影响的行数。
this:this关键字引用类的当前实例。
SqlCommand类:表示要对SQL Server数据库执行的一个Transact-SQL语句或存储过程。
6.执行查询命令文本,并且返回DataSet数据集
RunProcReturn()方法为可重载方法,返回值为DataSet类型。功能分别为执行带参数SqlParameter的命令文本,并返回查询DataSet结果集。下面代码中RunProcReturn(string procName,SqlParameter[] prams,string tbName)方法主要用于执行带参数SqlParameter的查询命令文本;RunProcReturn(string procName, string tbName)用于直接执行查询SQL语句。
可重载方法RunProcReturn()的完整代码如下:
例程06 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 执行参数命令文本(有返回值)
/// <summary>
/// 执行查询命令文本,并且返回DataSet数据集
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <param name="tbName">数据表名称</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();
//得到执行成功返回值
return ds;
}
/// <summary>
/// 执行命令文本,并且返回DataSet数据集
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="tbName">数据表名称</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();
//得到执行成功返回值
return ds;
}
#endregion
代码贴士
SqlDataAdapter类:表示用于填充DataSet和更新SQL Server数据库的一组数据命令和一个数据库连接。
Fill()方法:在DataSet中添加或刷新行以匹配使用DataSet和DataTable名称的数据源中的行。
7.将SqlParameter添加到SqlDataAdapter中
用CreateDataAdaper()方法创建一个SqlDataAdapter对象以此来执行命令文本。其完整代码如下:
例程07 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 将命令文本添加到SqlDataAdapter
/// <summary>
/// 创建一个SqlDataAdapter对象以此来执行命令文本
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <returns></returns>
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
this.Open();
SqlDataAdapter dap = new SqlDataAdapter(procName,con);
dap.SelectCommand.CommandType = CommandType.Text; //执行类型:命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter);
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return dap;
}
#endregion
代码贴士
CommandType属性:获取或设置要对数据源执行的Transact-SQL语句或存储过程。CommandType属性值如下:
StoredProcedure:存储过程的名称。
TableDirect:表的名称。
Text:SQL文本命令(默认)。
Add()方法:添加SqlParameter对象。
8.将SqlParameter添加到SqlCommand中
用CreateCommand()方法创建一个SqlCommand对象以此来执行命令文本。完整代码如下:
例程08 代码位置:光盘\TM\01\SIS\ App_Code \ DataBase.cs
#region 将命令文本添加到SqlCommand
/// <summary>
/// 创建一个SqlCommand对象以此来执行命令文本
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams"命令文本所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
//确认打开连接
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.Text; //执行类型:命令文本
//依次把参数传入命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
//加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
#endregion