回答

收藏

C#-SqlConnection InfoMessage只在执行结束时触发

技术问答 技术问答 250 人阅读 | 0 人回复 | 2023-09-14

我在用
7 x+ X' M3 A0 b; Q# L- v1 d* ksqlConnection.InfoMessage  = new SqlInfoMessageEventHandler(sqlConnection_InfoMessage);并ExecuteNonQuery()执行存储过程。" o6 A* P- }* V/ s( r' X$ U
我RAISERROR("Custom Message",10 ,1) WITH NOWAIT使用在存储过程中引发消息。
5 `& d0 p& n6 T! O7 X* I7 _我想在查询执行结束时处理sql server抛出所有消息。
% Y8 }2 q( i6 |3 i  L3 O我可以通过设置实时获取所有信息,sqlConnection.FireInfoMessageEventOnUserErrors =true;但这也会导致严重性大于10的错误SqlInfoMessageEventHandler抛出作为异常处理。$ A7 K8 h0 X% E8 j- X
可以用什么方法?eventHandler自定义实时获取10的严重性sql infomessage,但是其他方法可以作为异常吗?7 R/ L9 ?  B6 F( r0 I' ?; `, H
                                                                0 f) W1 n6 z0 d/ U3 P
    解决方案:                                                                7 d' y) n# @: h; H1 H2 q
                                                                问题似乎出在ExecuteNonQuery()。9 d: |0 N+ f/ h: U( z" Z
就我而言,我用ExecuteScalar()并删除了银行3 X/ `* L# H; n+ E, L
sqlConnection.FireInfoMessageEventOnUserErrors = true;
. v  x- }7 E" z6 N5 r导致 RAISERROR("Custom Message",10 ,1) WITH NOWAIT" u$ n. e5 [" `7 j; z8 _
实时地被eventHandler捕获其他事件为异常。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则