如何识别用户取消的SqlException?

Nez*_*eli 0 sql-server ado.net sqlclient

因此,我使用 取消了查询SqlCommand.Cancel。Sql 客户端返回了SqlException以下消息:

当前命令发生严重错误。如果有结果,则应丢弃。操作被用户取消。

我没意见。但是,我必须优雅地处理它,因为这不是应该报告的常规错误。问题是,除了消息之外,我发现的对象内没有任何指示符SqlException可以识别它是由用户取消查询引起的。

我不想使用消息本身,因为它可能在某些时候被更改或翻译成另一种语言。ErrorNumber属性为0Class属性为11

I-A*_*A-N 5

SqlException对于 SQL Server 2008 R2 和 .NET 4.0 ,设置以下属性:

如果该SqlConnection.FireInfoMessageEventOnUserErrors属性设置为true

  • Class:16
  • Number: 3204
  • Message:备份或恢复已中止。RESTORE DATABASE 异常终止。操作被用户取消。

如果该SqlConnection.FireInfoMessageEventOnUserErrors属性设置为false

  • Class: 11
  • Number: 0
  • Message:操作被用户取消。