How can I cancel a database query in ASP.NET when the user's browser disconnects?

asp.net, asynchronous, sql-server

Solution

you can use the sqlcommand's BeginExecuteReader to get an asynch sqlreader example

not 100% sure if thats what you need?

link showing cancel

Problem

My ASP.NET (3.5) app allows users to run some complex queries that can take up to 4 minutes to return results. When I'm doing a long loops of code, I'll check `Response.IsClientConnected()` occasionally so I can end the page if the user closes their browser or hits the stop button. But when querying SQL Server, my .NET code is blocked at the call to `GetDataReader()`. Is there a straightforward way to do GetDataReader() asynchronously so I can wait around for it but still check, say, every 5-10 seconds to see if the user is still connected, and bail on the database query if they've left? Or is there some other alternative I'm not thinking of?

Original source