我创建了一个存储过程,当查询成功执行或失败时,该存储过程会插入到日志表中。它看起来像这样:
CREATE PROCEDURE [dbo].[sp_stackoverflow]
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION trans1
INSERT INTO tablename...
INSERT INTO logtablename...
COMMIT TRANSACTION trans1
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION trans1
END
SET NOCOUNT ON
INSERT INTO logtablename...
END CATCH
END
C#代码看起来像这样
// isSuccessful is boolean
isSuccessful = cmd.ExecuteNonQuery() > 0;
我希望在调用ExecuteNonQuery()
时返回-1,这样isSuccessful
将返回false,但它总是返回true,可能是因为在catch语句中插入日志表的查询
答案 0 :(得分:0)
我可以解释一下,基本上你想设置' IsSuccessful' Bool字段基于executeNonQuery方法返回的值;在这种情况下,您也可以尝试使用"输出"参数并在Try块中设置其不同的值,在Catch块中设置其他值;根据Output参数返回的值,您可以轻松判断操作是否成功,并相应地为IsSuccessful字段设置值。希望这会对你有所帮助。