C # - использование TableAdapter для возврата одного значения из хранимой процедуры возвращает ноль - PullRequest
3 голосов
/ 23 марта 2011

Я не понимаю, но моя хранимая процедура, которую я добавил в табличный адаптер, возвращает только нулевое значение.Предполагается вернуть простое целочисленное значение.В предварительном просмотре, который я имел с набором данных desinger, я мог ясно получить целочисленное значение, которое я хотел.Но по какой-то причине я не могу получить значение из своих кодов.

Я следовал инструкциям библиотеки MSDN: http://msdn.microsoft.com/en-us/library/37hwc7kt(VS.80).aspx

Мой код для c #:

humansDataSetTableAdapters.ProfilesTableAdapter tableAdapter 
= new humansDataSetTableAdapters.ProfilesTableAdapter(); 

int returnValue = (int)tableAdapter.getSample();

Console.Write(returnValue);

Мой код для хранимой процедуры getSample:

DECLARE @r int
SET @r = 7
RETURN @r

Кто-нибудь может дать мне знать, как я могу решить эту проблему ??Любая помощь будет оценена!

Ответы [ 3 ]

3 голосов
/ 23 марта 2011

Скаляр ожидает результата, а не возврата.Будь определением, он ищет первый столбец, первую строку.http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx

Попробуйте

DECLARE @r int
SET @r = 7
SELECT @r
1 голос
/ 23 марта 2011

вместо того, чтобы идти к этому решению, я хотел бы предложить вам использовать ExecuteScalar, если хранимая процедура возвращает одно значение.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx

0 голосов
/ 23 марта 2011

Вы используете типизированный DataSet?Если это так, убедитесь, что ваша хранимая процедура настроена на возврат скалярного значения.

...