C# ExecuteNonQuery()始终返回-1
我正在使用存储过程在表中插入一些值C# ExecuteNonQuery()始终返回-1,c#,asp.net,executenonquery,C#,Asp.net,Executenonquery,我正在使用存储过程在表中插入一些值 CREATE PROCEDURE [dbo].[Sp_InsertValue] @Val1 as nvarchar(50) @Val2 as nvarchar(50) as BEGIN IF NOT EXISTS(SELECT * FROM @mytable WHERE ID=@Val1) INSERT INTO @mytable VALUES(@VAL2) END 我正在使用ExecuteNonQuery()在ASP.NET中使用C#调用此
CREATE PROCEDURE [dbo].[Sp_InsertValue]
@Val1 as nvarchar(50)
@Val2 as nvarchar(50)
as
BEGIN
IF NOT EXISTS(SELECT * FROM @mytable WHERE ID=@Val1)
INSERT INTO @mytable VALUES(@VAL2)
END
我正在使用ExecuteNonQuery()在ASP.NET中使用C#调用此存储过程。它工作正常,没有问题,如果不存在值,它会插入值。问题是cmd.ExecuteNonQuery()总是返回-1。我希望如果插入一条记录,它应该返回1,如果不是,它应该返回0,对吗?检查您的存储过程中是否没有“setnocounton”。这将停止返回的影响行数。字面上的“NoCount”是开着的
在这种情况下,默认响应将始终为“-1”。当您在sql server查询窗口中执行此过程时,是否可以在结果窗格中看到任何记录更新消息?并尝试返回由于将此过程添加到最后一行而受影响的行-Return@@RowcountSET NOCOUNT ON是我的罪魁祸首。非常感谢你指出这一点。