4

我有这个 sql 参数我得到了 cant unbox as int 错误

returnValue = (int)cmdUpdateCreatedOn.Parameters["@intcount"].Value;

返回值被声明为int returnValue = 0,我的参数也被声明为int,它正在更新行数。我尝试了不同的转换语法,但似乎都不起作用。

我的 SP 是

ALTER Procedure [dbo].[UpdateStation]
@intcount int output AS 
select StationaryName into #stname from Stationaries where Authorized = 0 
select * from #stname 
Update Stationaries Set  Authorized = 1 where Authorized = 0 set @intcount =   @@rowcount
4

1 回答 1

8

我遇到过同样的问题。

在存储过程中返回的 INT 是“SHORT”类型。我不知道为什么。

无法将 ..."@SubjectID"...(实际类型为 'short')转换为 'string'。

解决方案:
1. 在 c# 中取消装箱为“SHORT”或
2. 在 c# 中使用 Convert.ToInt32。

于 2014-05-12T16:14:48.923 回答