0

这是我调用程序的代码:

cmd.CommandText = "x.PROCEDURENAME";

cmd.Parameters["V_IID_DOKUMENT_PO"].Value = "1";
cmd.Parameters["x"].Value = x.Text;
cmd.Parameters["x"].Value = x.Text;
cmd.Parameters["x"].Value = x.Text;
cmd.Parameters["x"].Value = Convert.ToInt32(x.Text);
cmd.Parameters["x"].Value = x.Text;
cmd.Parameters["x"].Value = x.Text;
cmd.Parameters["x"].Value = x.Text;
cmd.Parameters["x"].Value = x.Text;
cmd.Parameters["x"].Value = "1";
cmd.ExecuteNonQuery();

但我明白了

此参数集合不包含名为“V_IID_DOKUMENT_PO”的参数。

如果我签入数据库

PROCEDURE PROCEDURENAME
 (V_IID_DOKUMENT_PO IN NUMBER
  ...

我做错了什么?

如果我使用:

cmd.Parameters.Add("V_IID_DOKUMENT_PO", OracleDbType.Number, 1);

我得到无效的 sql 语句

4

2 回答 2

2

您是否指定这是您正在调用的存储过程?

例如,您是否有此行(您发布的示例代码似乎不完整):

cmd.CommandType = CommandType.StoredProcedure;
于 2011-09-07T12:30:39.823 回答
1

利用,

cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("V_IID_DOKUMENT_PO", OracleDbType.Number).Value=1;
于 2011-09-07T12:11:32.897 回答