Click here to Skip to main content
15,886,519 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
How to stop long running query by clicking on button?

Requirement is to display records fetched until the stop button is clicked.

example:

if i have table with 1000 rows i want to terminate execution in middle by clicking on stop button if it fetched only 500 records at that time when i click on stop button it should display 500 records only.

Note:in my code i was using datareader to fetch records from database and binding to datatable.

please suggest a way how to do it using timer or threading concept.
Posted
Comments
Chris Reynolds (UK) 13-Feb-13 9:10am    
It is worth understanding why you may want to stop the fetch early. Depending on the nature of the query then all of the hard work may have been done before you start retrieving rows as the actual building of the query can take the most time if there are complex joins and slection criteria involved. The actual retrieval of rows may be only a small part of your total time to populate. Have you tried any ideas out?

1 solution

You can cancel the query by using SQLCommand.Cancel method[^] But remember, the command must be running in another thread, otherwise Cancel method will be called after the command is finished.

Another method is to specify a CommandTimeout to cancel query executing when it runs over a specified time limit.
 
Share this answer
 
Comments
karteekboddu 13-Feb-13 9:15am    
Thankyou,

Could you please provide with one example code.
Maciej Los 13-Feb-13 9:45am    
Just fallow the link and you'll find an example code.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900