供求信息网(9)

代码贴士

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

读书导航