Command调用存储过程Output参数

如果再不写点东西,害怕自己以后再也不会写程序了,很久没有更新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语句或者存储过程执行后获取这个参数的值,代码代码如下所示。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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

    //执行成功

;

转载于:https://www.cnblogs.com/liulanglang/archive/2007/09/25/905512.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C# 中调用 Oracle 存储过程可以使用 Oracle.DataAccess.Client 命名空间中的 OracleCommand 类。下面是一个示例代码: ```csharp // 创建 Oracle 数据库连接 OracleConnection connection = new OracleConnection("Data Source=your_datasource;User ID=your_userid;Password=your_password"); // 打开数据库连接 connection.Open(); // 创建 OracleCommand 对象,设置存储过程名称和连接对象 OracleCommand command = new OracleCommand("your_stored_procedure_name", connection); command.CommandType = CommandType.StoredProcedure; // 添加输入参数 OracleParameter inputParameter = new OracleParameter("input_parameter_name", OracleDbType.Varchar2, ParameterDirection.Input); inputParameter.Value = "your_input_parameter_value"; command.Parameters.Add(inputParameter); // 添加输出参数 OracleParameter outputParameter = new OracleParameter("output_parameter_name", OracleDbType.Varchar2, ParameterDirection.Output); command.Parameters.Add(outputParameter); // 执行存储过程 command.ExecuteNonQuery(); // 获取输出参数值 string outputValue = outputParameter.Value.ToString(); // 关闭数据库连接 connection.Close(); ``` 其中,your_datasource 是你的 Oracle 数据库连接字符串,your_userid 和 your_password 是你的数据库用户名和密码,your_stored_procedure_name 是你要调用存储过程名称,input_parameter_name 是存储过程的输入参数名称,output_parameter_name 是存储过程的输出参数名称。执行存储过程后,可以通过 outputParameter.Value 属性获取输出参数的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值