异常后读取 SqlDataReader -- LIKE SSMS 结果窗格

mor*_*hai 1 c# sql-server ssms sqlcommand

有没有办法从不失败的情况下获取Reader对象?SqlCommand.ExecuteReaderSqlException

在 SSMS 中,对于此命令:

RAISERROR (15600, 12, 5, 'example');
SELECT   * FROM TableName
Run Code Online (Sandbox Code Playgroud)

我得到了错误信息 + 结果窗格TableName

当我SqlCommand.ExecuteReader 执行这个命令时,我得到一个SqlException,但我无法得到结果数据。有没有办法跳过异常并处理Reader对象?

Dan*_*man 5

为了避免抛出 aSqlException并在错误后继续执行批处理,您可以将连接FireInfoMessageEventOnUserErrors属性设置为 true 并处理连接InfoMessage事件。该Infomessage处理器将在随后被调用,而不是扔一个SqlException,您可以继续加工SqlDataReader使用效果ReadNextResult