私はレコードを削除するためのストアドプロシージャを作成しました。このストアドプロシージャでは、まず削除するデータの使用状況をチェックしています。それが使用されている場合、ストアド・プロシージャーは-2を戻します。それ以外の場合は、レコードを削除します。ExecuteNonQueryは常に-1を返します
しかし、問題でも、レコードが存在しても、その代わりに-2ではなく-1が返されます。私もNOCOUNT OFF
を設定しましたが、どこに問題があるのか分かりません。
私はこの質問はすでにNOCOUNT OFF
を設定することで答えている知っているが、そのはExecuteNonQuery
ドキュメントから、私のため
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
を使用しているコードを投稿し、 'Delete ,,,, 'ステートメントの下にいくつかの戻り値を追加してください。 – McNets