我创建了一个用于删除记录的存储过程。在这个存储过程中,我首先检查我将要删除的数据的用法。如果正在使用它,那么存储过程将返回-2,否则它会删除记录。ExecuteNonQuery总是返回-1
但问题是,即使记录存在其返回-1,而不是-2。我也设置了NOCOUNT OFF
,但不知道问题出在哪里。
我知道这个问题已经被设置NOCOUNT OFF
但回答它不是为我工作
ALTER PROCEDURE [dbo].[spDeletePIDNumber]
@Id int
AS
BEGIN
SET NOCOUNT OFF;
-- Insert statements for procedure here
if(exists(select * from tblBills where PID = @Id))
begin
return -2
end
else
begin
Delete from HelperPIDNumber
where Id = @Id
end
END
public int DeletePIDNumber(int Id)
{
try
{
int result = 0;
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.connection))
{
var cmd = new SqlCommand("spDeletePIDNumber", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Id", Id);
conn.Open();
result = cmd.ExecuteNonQuery();
}
return result;
}
catch
{
throw;
}
}
您可以发布您正在尝试的代码吗? – Geethanga
后使用了'.ExecuteNonQuery()' – McNets
其中的代码,并添加下面的'删除,,,,'声明了一些返回值。 – McNets