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

C# 4.0 检索存储过程的输出参数值,c#-4.0,stored-procedures,sql-server-2008-r2,C# 4.0,Stored Procedures,Sql Server 2008 R2,我有一个返回输出的存储过程。存储过程中的输出参数定义如下: @Success int output 我使用下面的语句从输出参数中检索值。我收到了错误信息 “指定的强制转换无效” 我正在使用Visual Studio 2012 int returnVal = (int)myCOmmand.Parameters["@Success"].Value; 你能告诉我有什么问题吗?并提供解决方案 谢谢你的帮助。 Yagya我创建了一个参数以在执行后从中获取值,如下所示(o_id是参数名): 在本例中,d

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

@Success int output
我使用下面的语句从输出参数中检索值。我收到了错误信息

“指定的强制转换无效”

我正在使用Visual Studio 2012

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

谢谢你的帮助。
Yagya

我创建了一个参数以在执行后从中获取值,如下所示(o_id是参数名):

在本例中,
db
是一个数据库层,它执行我的IDB命令

可能您可以使用
int.Parse()
(或者更好的是,
int.TryParse()
)解决您的问题

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());