Процедура сохранения Возвращает значение int правильно в SQL Server, но имеет значение «-1» - PullRequest
0 голосов
/ 10 июля 2019

Я работаю над проектом asp.net с C #. Я использую SQL Server для базы данных. В SQL есть хранимая процедура, которая должна возвращать значение типа int (поле Количество из таблицы). Это одиночное значение, а не количество или количество затронутых строк. Смотрите здесь:

CREATE PROCEDURE [dbo].[getTempQtybySr2]
        @sr int 
AS
BEGIN

    return (SELECT Quantity from Temp where Sr = @sr )
END
GO

и возвращает правильное значение int (124) при выполнении в SQL Server. Смотрите изображение ниже:

Result of Stored Procedure in SQL Server

Но когда я вызываю хранимую процедуру в C #. Смотрите код

using (crossfieldagro_x1Entities5 db = new crossfieldagro_x1Entities5())
{
    PurchasesDetail2 tbl2 = new PurchasesDetail2();

    tbl2.PurchasesQuantity = db.getTempQtybySr2(2);


    db.PurchasesDetail2.Add(tbl2);
    db.SaveChanges();
}

Он работает и хранит «-1» в базе данных, а не сохраняет правильное значение из таблицы. смотри эту картинку

Table where the -1 is stored

Поэтому я провел поиск в Интернете и обнаружил, что оператор RETURN можно использовать для возврата значений int из хранимой процедуры.

Чтобы получить целочисленное значение, сначала я использовал простую инструкцию SELECT в хранимой процедуре и преобразовал ее вывод в тип int в C #. Но это бросает некоторые исключения. Смотрите эту картинку ниже:

Click to see Exception

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...