报表查看器不在窗口关闭时停止存储过程

时间:2012-02-09 16:31:17

标签: sql-server-2008 stored-procedures report reportviewer

我正在使用Report Viewer 2008生成一个报告,该报告使用存储过程(SQL Server 2008)来填充它。报告生成正确。此报告需要一段时间才能生成,因为它很大。在加载报告期间,如果用户关闭浏览器窗口,则此存储过程将一直执行直到完成(即使没有显示报告...)。问题是这会导致服务器处理器死亡,特别是如果这是由多个用户完成的,一旦关闭它们会重新打开并再次加载,导致存储过程由同一用户同时运行两次。

有没有办法在浏览器关闭后强制存储过程停止执行?提前感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

看看DBCommand.Cancel()

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.cancel.aspx

您可以在显示报告的表单的CloseEvent上注册,当表单关闭时,也尝试取消该语句。