当前位置: 首页 > 编程语言 > C#

C#中SQLServer存储过程的异步调用分享

时间:2023-04-10 13:44:29 C#

C#中SQLServer存储过程的异步调用是否可以通过C#异步调用SQLServer存储过程?我有一个写入特定数据库备份的存储过程(这可能需要很长时间才能完成),我想在Windows窗体中显示备份过程的进度(为此我使用http://www.wisesoft.co.uk/articles/tsql_backup_restore_progress.aspx)。或者我应该使用Backgroundworker控件并在backgroundjob(自己的线程)中运行SP?在SqlCommand中,您可以使用BeginExecuteNonQuery和EndExecuteNonQuery异步运行命令。后者将阻塞直到完成。但是,这不会报告服务器的备份进度-我会使用选取框进度条。为避免EndExecuteNonQuery阻塞您的UI(取决于您处理它的方式),您需要一个后台线程。如果你使用它,那么你也可以不使用BeginXXXEndXXX方法并在后台线程上同步执行它-BackgroundWorker最适合这个。为避免在UI中使用后台线程,而不是在EndXXX上阻塞,您需要注册一个回调并处理结果事件(在此事件处理程序中调用EndXXX,但它会立即返回)。更新:根据评论,对于SQL命令/连接东西的异步调用,您需要在连接字符串中尽可能多地指定:http://www.connectionstrings.com/sql-server-2008Server=myServerAddress;数据库=我的数据库;集成安全性=真;异步处理=真;或者在代码中使用连接字符串构建器:builder.AsynchronousProcessing=true;检查此链接:无论如何,我会在单独的线程中执行此操作,因此我可能会使用BackgroundWorker方法。以上就是C#学习教程:C#异步调用SQLServer存储过程的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: