每个Command对象都有一个Parameters属性。这个属性有一个SqlParameterCollection或OleDbParameterCollection对象(取决于数据提供程序),它保存了所有用于Command对象的参数。
所定义的每个参数都有一个关联方向。这个方向在Parameter对象的Direction属性中指定,并且它表明了是为存储过程提供数据,还是等待这个过程返回数据。允许的方向代码如下所示:
1.Input (输入)
2.InputOutput(输入输出)
3.Output(输出)
4.ReturnValue(返回值)
要创建参数,可以显式地声明Parameter对象,设置所需的属性,然后在Command对象的参数集合中添加参数,代码如下所示。
SqlParameter parm = new SqlParameter();
parm.ParameterName = “@username”;
parm.Direction = ParameterDirection.Input;
parm.SqlDbType = SqlDbType.Varchar;
parm.Value = “myParamValue”;
cmd.Parameters.Add(parm);
这段代码使用了Parameter对象的基本构造函数来创建一个参数。它用@paramname的形式,使用ParameterName属性指定参数的名称。然后,它使用Parameter对象的Direction、SqlDbType和Value属性设置其他属性值。
在下面的示例中要获取@strOutPut参数的返回数值,可以在程序中将其的数据类型设置成adParamOutput类型的,这样就可以在SQL语句或者存储过程执行后获取这个参数的值,代码代码如下所示。
cmd.commandtype = adCmdStoredProc;
cmd.Parameters.Append cmd.createparameter("@BianH",adInteger,adParamInput,,intTest1);
cmd.Parameters.Append cmd.createparameter("@username",adChar,adParamInput,,intTest2);
cmd.Parameters.Append cmd.createparameter("@XingM",adChar,adParamInput,,intTest3);
cmd.Parameters.Append cmd.createparameter("@XingB",adChar,adParamInput,,intTest4);
cmd.Parameters.Append cmd.createparameter("@strOutPut",adVarChar,adParamOutput,255);
cmd.execute;
state = cmd("@strOutPut");
if state <> "ok" then
//执行成功
;