Я работаю над проектом 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. Смотрите изображение ниже:
Но когда я вызываю хранимую процедуру в C #. Смотрите код
using (crossfieldagro_x1Entities5 db = new crossfieldagro_x1Entities5())
{
PurchasesDetail2 tbl2 = new PurchasesDetail2();
tbl2.PurchasesQuantity = db.getTempQtybySr2(2);
db.PurchasesDetail2.Add(tbl2);
db.SaveChanges();
}
Он работает и хранит «-1» в базе данных, а не сохраняет правильное значение из таблицы. смотри эту картинку
Поэтому я провел поиск в Интернете и обнаружил, что оператор RETURN можно использовать для возврата значений int из хранимой процедуры.
Чтобы получить целочисленное значение, сначала я использовал простую инструкцию SELECT в хранимой процедуре и преобразовал ее вывод в тип int в C #. Но это бросает некоторые исключения. Смотрите эту картинку ниже: