检索存储过程的输出参数的值

时间:2013-03-27 12:48:59

标签: c#-4.0 stored-procedures sql-server-2008-r2

我有一个返回输出的存储过程。存储过程中的输出参数定义如下:

@Success int output

我使用以下语句从输出参数中检索值。我收到错误消息

  

“指定的演员表无效”

我正在使用Visual Studio 2012。

int returnVal = (int)myCOmmand.Parameters["@Success"].Value;
你能告诉我可能出现什么问题吗?并提供解决方案。

感谢您的帮助。 雅格亚

1 个答案:

答案 0 :(得分:1)

我创建了一个参数来从执行后获取值,就像这样(o_id是参数名称):

IDbDataParameter o_id = cmd.CreateParameter();
o_id.ParameterName = "?o_id";
o_id.DbType = DbType.Int32;
o_id.Direction = ParameterDirection.Output;
cmd.Parameters.Add(o_id);

// Call the Stored Procedure
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText "= MyStoredProcedure";

db.ExecuteNonQuery(cmd);
int o_idValue =  int.Parse(o_id.Value.ToString());

在这种情况下,db是一个数据库层,它执行我的IDbCommand

准确地说,您可以使用int.Parse()(或更好,int.TryParse())来解决您的问题