执行Sql Server存储过程并获取OUTPUT INSERTED值

时间:2014-10-13 07:34:08

标签: c# sql-server

我想在插入记录时插入行键。然后我写了这个Sample 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

如何使用C#获取此OUT值?

1 个答案:

答案 0 :(得分:0)

StoredProcedure的Output子句返回一个具有单个值的行 因此,获取结果的正确方法是通过SqlCommand的ExecuteScalar方法

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是什么数据类型。我假设一个整数,因此转换值为ExecuteScalar

的Convert.ToInt32()