Выполнение хранимой процедуры Sql Server и получение значения OUTPUT INSERTED

1

Я хочу получить вставленный ключ строки при вставке записей. Затем я написал этот образец SQL SP.

CREATE PROCEDURE  Temp
AS
BEGIN
    SET NOCOUNT ON
insert  into Farmer_landDetails 
(oth_mas_key,
fmr_key,
anim_typ_key,
anim_count,
land_type_key,
land_availability) OUTPUT INSERTED.oth_det_key values(1,1,1,1,1,1) 
END
GO

Как получить это значение OUT с помощью С#?

  • 0
    Почему бы вам просто не выбрать строку, вставленную после вставки? У вас есть первичный ключ среди столбцов?
  • 2
    Выполните это из C #, используя ExecuteScalar
Показать ещё 1 комментарий
Теги:
sql-server

1 ответ

0
Лучший ответ

Предложение Output вашего StoredProcedure возвращает одну строку с единственным значением.
Таким образом, правильный метод получения результата - через метод ExecuteScalar для SqlCommand

using(SqlConnection cnn = new SqlConnection(....))
using(SqlCommand cmd = new SqlCommand("Temp", cnn))
{
   cnn.Open();
   cmd.CommandType = CommandType.StoredProcedure;
   int result = Convert.ToInt32(cmd.ExecuteScalar());
}

Обратите внимание, что я понятия не имею, какой тип данных является oth_det_key. Я предполагаю, что целое число, следовательно, Convert.ToInt32() для возвращаемого значения ExecuteScalar

Ещё вопросы

Сообщество Overcoder
Наверх
Меню