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

时间:2014-05-20 07:12:22

标签: c# sql

我正在使用

sqlConnection.InfoMessage += new SqlInfoMessageEventHandler(sqlConnection_InfoMessage);

ExecuteNonQuery()执行存储过程。

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

我正在获取sql server在查询执行结束时抛出的所有消息,这是我在处理过程中想要的。

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

有什么方法可以在eventHandler中实时获取我的自定义sql信息快照,严重程度为10,但是其他异常?

1 个答案:

答案 0 :(得分:14)

问题似乎是ExecuteNonQuery()

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

sqlConnection.FireInfoMessageEventOnUserErrors = true;

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