更新:看起来查询不会抛出任何超时.连接超时.
这是执行查询的示例代码.有时,在执行耗时的查询时,会引发超时异常.
我不能使用任何这些技术:
1)增加超时
2)与回调异步运行它.这需要以同步方式运行.
请建议任何其他的技术,以保持连接活着,同时执行耗时的查询?
private static void CreateCommand(string queryString,string connectionString) { using (sqlConnection connection = new sqlConnection( connectionString)) { sqlCommand command = new sqlCommand(queryString,connection); command.Connection.open(); command.ExecuteNonQuery(); } }
解决方法
由于您使用的ExecuteNonQuery不返回任何行,您可以尝试这种基于轮询的方法.它以asyc方式执行查询(无回调)
但应用程序将等待(一段时间循环),直到查询完成.从 MSDN.这应该解决超时问题.请尝试一下
但应用程序将等待(一段时间循环),直到查询完成.从 MSDN.这应该解决超时问题.请尝试一下
但是,我同意其他人的观点,您应该考虑更多关于优化查询以在30秒以内执行的操作.
IAsyncResult result = command.BeginExecuteNonQuery(); int count = 0; while (!result.IsCompleted) { Console.WriteLine("Waiting ({0})",count++); System.Threading.Thread.Sleep(1000); } Console.WriteLine("Command complete. Affected {0} rows.",command.EndExecuteNonQuery(result));
原文地址:https://www.jb51.cc/csharp/96748.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。