异常后读取 SqlDataReader——类似 SSMS 结果面板
Read SqlDataReader after Exception -- LIKE SSMS Result Pane
有没有办法从 SqlCommand.ExecuteReader
获取 Reader
对象而不在 SqlException
上失败?
在 SSMS 中,对于此命令:
RAISERROR (15600, 12, 5, 'example');
SELECT * FROM TableName
我得到了 TableName
的错误信息 + 结果面板。
当我用这个命令执行 SqlCommand.ExecuteReader
时,我得到一个 SqlException
,但我无法得到结果数据。
有没有办法跳过异常,并处理 Reader
对象?
为避免抛出 SqlException
并在错误后继续执行批处理,您可以设置连接 FireInfoMessageEventOnUserErrors
property to true and handle the connection InfoMessage
事件。然后将调用 Infomessage
处理程序而不是抛出 SqlException
,您可以使用 Read
和 NextResult
.
继续处理 SqlDataReader
结果
有没有办法从 SqlCommand.ExecuteReader
获取 Reader
对象而不在 SqlException
上失败?
在 SSMS 中,对于此命令:
RAISERROR (15600, 12, 5, 'example');
SELECT * FROM TableName
我得到了 TableName
的错误信息 + 结果面板。
当我用这个命令执行 SqlCommand.ExecuteReader
时,我得到一个 SqlException
,但我无法得到结果数据。
有没有办法跳过异常,并处理 Reader
对象?
为避免抛出 SqlException
并在错误后继续执行批处理,您可以设置连接 FireInfoMessageEventOnUserErrors
property to true and handle the connection InfoMessage
事件。然后将调用 Infomessage
处理程序而不是抛出 SqlException
,您可以使用 Read
和 NextResult
.
SqlDataReader
结果