sqlexception 超时时间已到。在操作完成之前超时时间已过或服务器未响应。
2010年5月12日
没有评论
今天在将外出体检数据批量导入中心系统时,大概一分多钟后出现该异常。
上网查询了一下,有说将DbCommand的CommandTimeout属性赋一个比较大的值,缺省是30秒。有的说将服务器远程查询超时值由600秒改为0(无超时)。更有的说打开的对象没有Dispose。
都一一试了,还是在第二条数据导入一半的时候出现该提示。网上又有人说要优化sql语句。我后来用SQL Server Profiler跟踪了一下,当执行到某个SQL语句的时候,只有SQL:BatchStarting,没有SQL:BatchCompleted,我立马明白在此处对应的代码有问题。检查了一下,发现该sql查询处没有使用事务来查询,在已经开启事务还没有提交的情况下,试图去查询数据,显然结果只有一个:超时! 立即将此处代码改为事务查询。再次导数据,不到一分钟,就顺利导入完毕!