SqlConnection InfoMessage仅在执行结束时触发
本文关键字:结束 执行 InfoMessage SqlConnection | 更新日期: 2023-09-27 18:04:15
我使用
sqlConnection.InfoMessage += new SqlInfoMessageEventHandler(sqlConnection_InfoMessage);
和ExecuteNonQuery()
来执行存储过程。
我在存储过程中使用RAISERROR("Custom Message", 10 , 1) WITH NOWAIT
来抛出消息。
我在查询执行结束时得到sql server抛出的所有消息,这是我想要的。
我可以通过设置sqlConnection.FireInfoMessageEventOnUserErrors = true;
实时获取所有消息,但这会导致严重程度大于10的错误也由SqlInfoMessageEventHandler
处理,我想将其作为异常抛出。
有没有办法得到我的自定义sql信息与严重程度10实时在eventHandler,但其他作为例外?
这似乎是ExecuteNonQuery()
的问题。
在我的例子中,我使用ExecuteScalar()
并删除了
sqlConnection.FireInfoMessageEventOnUserErrors = true;
导致RAISERROR("Custom Message", 10 , 1) WITH NOWAIT
被eventHandler和其他异常实时捕获。