c# - 仅在执行结束时触发SqlConnection InfoMessage

Bip*_*ung 8 c# sql

我在用

sqlConnection.InfoMessage += new SqlInfoMessageEventHandler(sqlConnection_InfoMessage);
Run Code Online (Sandbox Code Playgroud)

ExecuteNonQuery()执行存储过程.

RAISERROR("Custom Message", 10 , 1) WITH NOWAIT在存储过程中使用抛出消息.

我正在获取sql server在查询执行结束时抛出的所有消息,我想要在进程时.

我可以通过设置实时获取所有消息sqlConnection.FireInfoMessageEventOnUserErrors = true;但这会导致严重性大于10的错误也被处理SqlInfoMessageEventHandler,我希望将其作为异常抛出.

有没有办法在eventHandler中实时获取严重性为10的自定义sql信息快照,但是其他异常?

Bip*_*ung 16

似乎问题在于ExecuteNonQuery().

在我的情况下,我使用ExecuteScalar()并删除了该行

sqlConnection.FireInfoMessageEventOnUserErrors = true;

这导致 RAISERROR("Custom Message", 10 , 1) WITH NOWAIT 被eventHandler和其他实时异常捕获.