let it be
行到水穷处 坐看云起时
如果再不写点东西,害怕自己以后再也不会写程序了,很久没有更新BLOG了,作为即将失去九月的几年还是摘录一篇稿子中的东西吧——关于Command对象的,主要是关于参数的问题,Command对象参数输入输出,以及获取的方式。

每个Command对象都有一个Parameters属性。这个属性有一个SqlParameterCollectionOleDbParameterCollection对象(取决于数据提供程序),它保存了所有用于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对象的DirectionSqlDbTypeValue属性设置其他属性值。

在下面的示例中要获取@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

    //执行成功

;

posted on 2007-09-25 15:20  流浪浪  阅读(1671)  评论(0编辑  收藏  举报