c# – 使用ADO.Net进行查询的连接超时异常

前端之家收集整理的这篇文章主要介绍了c# – 使用ADO.Net进行查询的连接超时异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
更新:看起来查询不会抛出任何超时.连接超时.

这是执行查询的示例代码.有时,在执行耗时的查询时,会引发超时异常.

我不能使用任何这些技术:
1)增加超时
2)与回调异步运行它.这需要以同步方式运行.

请建议任何其他的技术,以保持连接活着,同时执行耗时的查询

  1. private static void CreateCommand(string queryString,string connectionString)
  2. {
  3. using (sqlConnection connection = new sqlConnection(
  4. connectionString))
  5. {
  6. sqlCommand command = new sqlCommand(queryString,connection);
  7. command.Connection.Open();
  8. command.ExecuteNonQuery();
  9. }
  10. }

解决方法

由于您使用的ExecuteNonQuery不返回任何行,您可以尝试这种基于轮询的方法.它以asyc方式执行查询(无回调)
但应用程序将等待(一段时间循环),直到查询完成.从 MSDN.这应该解决超时问题.请尝试一下

但是,我同意其他人的观点,您应该考虑更多关于优化查询以在30秒以内执行的操作.

  1. IAsyncResult result = command.BeginExecuteNonQuery();
  2.  
  3. int count = 0;
  4. while (!result.IsCompleted)
  5. {
  6. Console.WriteLine("Waiting ({0})",count++);
  7. System.Threading.Thread.Sleep(1000);
  8. }
  9. Console.WriteLine("Command complete. Affected {0} rows.",command.EndExecuteNonQuery(result));

猜你在找的C#相关文章