我有一个像这样的条件的SP
IF NOT EXISTS (Select * from bom_steel where fpart = @fpart)
BEGIN
INSERT INTO bom_steel
VALUES (@fPart,@fL,@fH,@fW,@fDesc)
END
ELSE if(Select * from Employee where Empid = @empid)
BEGIN
Return ‘1’
END
Else
Begin
UPDATE bom_steel
SET fl=@fl, fh=@fH, fW=@fW
where Empid =@ empid
end
when this condition passes , I am returning an value as 1
ELSE if(Select * from Employee where Empid = @empid)
BEGIN // here i will to be doing any operation(DML) .so i want to just return an value as '1'
Return ‘1’
END
在我的代码后面 这里cmd是SqlCommand
Int intcount= cmd.ExecuteNonQuery();
在这种情况下,它总是将值重新调整为-1;
即使我将返回值设置为'1'仍然将值恢复为-1
任何人都可以告诉我该怎么办才能从那里返回一个值
任何帮助都会很棒 感谢
答案 0 :(得分:1)
您正在尝试返回字符值,而不是int
。尝试删除单引号。
InSane也说了些什么; ExecuteNonQuery()
返回受影响的行数。虽然这让我想到你的榜样;为什么会返回-1?
答案 1 :(得分:1)
尝试
Int intcount= cmd.ExecuteScalar();
而不是
Int intcount= cmd.ExecuteNonQuery();
ExecuteNonQuery()仅返回受影响的行数。
另外,删除返回值中的单引号,如下面Andrew所示,或者将intCount的类型改为字符串。