我正在使用
sqlConnection.InfoMessage += new SqlInfoMessageEventHandler(sqlConnection_InfoMessage);
和ExecuteNonQuery()
来执行存储过程。
我在存储过程中使用 RAISERROR("Custom Message", 10 , 1) WITH NOWAIT
来抛出消息。
我在查询执行结束时收到了 sql server 抛出的所有消息,这是我在处理时想要的。
我可以通过设置 sqlConnection.FireInfoMessageEventOnUserErrors = true;
实时获取所有消息,但这会导致严重性大于 10 的错误也由 SqlInfoMessageEventHandler
处理,它我想被抛出异常。
有什么方法可以在 eventHandler 中实时获取严重性为 10 的自定义 sql 信息消息,但其他异常?
最佳答案
问题似乎出在 ExecuteNonQuery()
上。
在我的例子中,我使用了 ExecuteScalar()
并删除了行
sqlConnection.FireInfoMessageEventOnUserErrors = true;
这导致 RAISERROR("Custom Message", 10 , 1) WITH NOWAIT
被 eventHandler 和其他实时捕获为异常。
关于c# - SqlConnection InfoMessage 仅在执行结束时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23753177/