[ADO.NET]MSSQL执行处理时出现Time…

来源:互联网 发布:乌鲁木齐seo免费诊断 编辑:程序博客网 时间:2024/06/09 16:00
ADO.NET在执行耗时的操作时,容易出现以下错误:
---------------------------
Timeout expired.  The timeout period elapsedprior to completion of the operation or the server is notresponding.
---------------------------
这里需要注意的是
SqlCommand.CommandTimeout和 SqlConnection.ConnectionTimeout是不同的概念,且通常需要我们自定义设置。

区别如下:
SqlCommand.CommandTimeout
获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
等待命令执行的时间(以秒为单位)。默认为 30 秒。


SqlConnection.ConnectionTimeout
获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
等待连接打开的时间(以秒为单位)。默认值为 15 秒。

SqlCommand.CommandTimeout的默认值是30,通常能满足大多数程序的需求。但一旦碰到大数据量操作或耗时的操作时,就容易引发上面的错误。

解决方法较为简单:

           SqlCommandcmd = new SqlCommand();
          cmd.CommandTimeout = 60;

当然,出现超时的情况还要判断是否存在脚本性能问题或数据库性能问题,则需要深入分析并优化。
0 0
原创粉丝点击