Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Непонятное преобразование данных(C#)  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1086
Имеем хранимую процедуру
ALTER PROCEDURE dbo.TubByRFID
(
 @RFID NVARCHAR(30)
)
AS
  DECLARE @EXTCODE NVARCHAR(30)
  SET @EXTCODE = (SELECT pr.extcode
                  FROM
                    proc_rcids pr
                  WHERE
                    extid1 = @RFID
                    OR extid2 = @RFID)
  RETURN @EXTCODE


Вот как клиент получает данные
SqlCommand cmd = conn.CreateCommand();
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.CommandText = @"dbo.TubByRFID";
                        cmd.Parameters.AddWithValue("RFID", rfid);
                        cmd.Parameters.Add("EXTCODE", SqlDbType.NVarChar, 30);
                        cmd.Parameters["EXTCODE"].Direction = ParameterDirection.ReturnValue;
                        cmd.ExecuteNonQuery();
                        extcode = (string)cmd.Parameters["EXTCODE"].Value; // Got an exception here

и благополучно вываливаемся с исключением о невозможности преобразования Int32 в String.
значения pr.EXTCODE примерно такие "00015", "00341"

В где руки кривые?
5 дек 12, 11:42    [13579907]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное преобразование данных(C#)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
waszkiewicz,

почитайте какой тип данных должен быть в RETURN у хранимой процедуры
5 дек 12, 11:49    [13579953]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное преобразование данных(C#)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
RETURN
5 дек 12, 11:52    [13579983]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное преобразование данных(C#)  [new]
AnaceH
Member

Откуда:
Сообщений: 109
waszkiewicz,

Используйте либо output параметры, либо возвращайте как поле select. Return в хп не для того.
5 дек 12, 11:53    [13579986]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное преобразование данных(C#)  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
waszkiewicz
Имеем хранимую процедуру
...


Вот как клиент получает данные
...

и благополучно вываливаемся с исключением о невозможности преобразования Int32 в String.
значения pr.EXTCODE примерно такие "00015", "00341"

В где руки кривые?
"Есть мнение" (навскидку), что...
Во-первых, RETURN в хранимых процедурах требует "integer".
Во-вторых, при декларировании ХП в C# рекомендуется первым параметром заводить ReturnValue.
В-третьих, для получения результата попробуйте использовать OUTPUT параметр или пользовательскую функцию.
5 дек 12, 11:57    [13580022]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное преобразование данных(C#)  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
waszkiewicz,

OUTPUT параметр Вас спасёт!
5 дек 12, 11:58    [13580028]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное преобразование данных(C#)  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1086
Всем спасибо
5 дек 12, 12:12    [13580145]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить