如何识别用户取消的SqlException?

时间:2014-01-31 15:01:01

标签: sql-server ado.net sqlclient

所以,我使用SqlCommand.Cancel取消了一个查询。 Sql客户端返回SqlException,并显示以下消息:

  

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

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

我不想使用消息本身。消息可以在某一点更改,也可以在另一点翻译成另一种语言。错误号属性为0,Class属性为11.

1 个答案:

答案 0 :(得分:3)

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

如果属性SqlConnection.FireInfoMessageEventOnUserErrors设置为true

  • 班级:16
  • 编号:3204
  • 消息:备份或还原已中止。 RESTORE DATABASE异常终止。 用户取消了操作。

如果属性SqlConnection.FireInfoMessageEventOnUserErrors设置为false

  • 班级:11
  • 数量:0
  • 消息:用户已取消操作。