2013-08-05 2 views
4

Эй, ребята, у меня есть этот SQL параметр им получить в косяк распаковывать как INT ошибкиМожет не распаковывать, как Int

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

возвращаемое значение объявлен как межд ReturnValue = 0 и мой параметр также объявлен как INT, и получает обновленную строку строк. Я пробовал использовать другой синтаксис преобразования, который, похоже, не работает.

MY 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 
+6

Посмотрите на значение в отладчике. Какая ценность? Каков его тип? Мои деньги имеют значение, равное нулю, или фактически «null», но независимо от проблемы, это тривиально. – Servy

+1

Какая * точная * ошибка вы получаете? –

+0

В отладчике его значение является int, и он говорит, что не может распаковать 'cmdUpdateCreatedOn.Parameters ["@ intcount"]. Значение' as int – CSharper

ответ

8

Я была такая же проблема.

INT, возвращаемый в хранимой процедуре, имеет тип «SHORT». Я не знаю почему.

Невозможно отличить ... "@ SubjectID" ... (который имеет фактический тип 'short') до 'string'.

Решение:
1. Unbox на 'SHORT' в C# ИЛИ
2. Используйте Convert.ToInt32 в C#.

Смежные вопросы