1

我有一个将返回值的 oracle 存储过程。我需要在我的 C# 程序中获取 OUTPUT 值。我需要知道如何使用 OracleCommands AddWithValue 方法获取 OUTPUT 参数。

我现在写的方式是:

 OracleCommand Ocmd = new OracleCommand(_StoredProcedure, OraCon);
    Ocmd.CommandType = CommandType.StoredProcedure;


            Ocmd.Parameters.AddWithValue("Filed1", "Value1");

            Ocmd.Parameters.AddWithValue("OUTPUTParam","").Direction = ParameterDirection.Output;

    OraCon.Open();
    int RecivedDetID = Ocmd.ExecuteNonQuery();
    OraCon.Close();

    return Ocmd.Parameters[_OutParam].Value.ToString();

我知道我所说的 OUTPUTPARAm 是错误的。如何使用 OracleCommand 的 AddWithValue 方法实现它。我不想在我们还需要指定类型的地方使用 OracleCommands Add 方法。

4

1 回答 1

5

确保在执行前设置参数的 SIZE 属性。使用 Oracle 中的输出参数,指定的大小充当缓冲区。如果未设置缓冲区,则为 0,因此您不会从数据库中获取值。

var param = Ocmd.Parameters.AddWithValue("OUTPUTParam","").Direction = ParameterDirection.Output;
param.Size = 255;

其余的都很好!

于 2012-02-29T06:56:38.563 回答