http://blog.csdn.net/long2006sky/article/details/1683459

今天碰到了一个查询异常问题,上网查了一下,感谢原创和译者

如果你使用的数据库连接类是 the Data Access Application Blocks "SqlHelper" 或者 SqlClient Class , 你在执行一个很费时的SQL 操作时候,可能就会碰到下面的超时异常。

---------------------------

---------------------------
Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
---------------------------
OK  
---------------------------

你会说,我在连接字符串中已经 设置了 Connect Timeout=80000 ,并且数据库中超时连接也是设置的值是一个很大的值。为啥到了30秒,仍然超时了呢??

这是因为:
你的设置并没有问题,是你混淆了  SqlCommand.CommandTimeout  和 SqlConnection.ConnectionTimeout 这两个的区别了。
你的连接字符串中的超时只是设置的 SqlConnection.ConnectionTimeout 的值,而不是设置的 SqlCommand.CommandTimeout 的值。
SqlHelper 中并没有 SqlCommand.CommandTimeout 的相关设置。需要你自己设置。

下面是两个的比较:

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

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

一些更详细的对这个问题的描述看:
http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=357

这个问题可以算是 SqlHelper 设计的时候,一个考虑不周的地方吧。
SqlCommand.CommandTimeout 的默认值是30,对于我写的大多数程序来说,这个值足够了。所以一直都没有发现SqlHelper的这个问题。今天在查本地一台比较差的机子上生成一个超长帖子(近4000个回复)无响应的问题时候,才发现SQLHelper 存在的这个问题。

SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 这两个的区别相关推荐

  1. SqlConnection.ConnectionTimeout 与 SqlCommand.CommandTimeout 及SqlBulkCopy.BulkCopyTimeout属性

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

  2. SqlConnection.ConnectionTimeout 与 SqlCommand.CommandTimeout

    SqlConnection.ConnectionTimeout 属性表示: 获取在尝试建立连接时终止尝试并生成错误之前所等待的时间. 通过在连接字符串中使用 ConnectTimeout 或 Conn ...

  3. SqlCommand.CommandTimeout超时用户请求当前操作

    解:读取Oracle超时造成的,设置超时时间为300s,注意单位s,SqlCommand.CommandTimeout的单位是s,原单位是180s,读取时间为220s左右,所以超时,改为300s,问题 ...

  4. @query传参_VueRouter之query与params两种传参区别

    传参是前端经常需要用的一个操作,很多场景都会需要用到上个页面的参数,比如传个id获取个详情信息,今天咱们就来看看Vue中是怎么实现这种传递参数得 在Vue中提供了两种方法来进行路由传参:query 和 ...

  5. python类的命名空间_Python之关于类变量的两种赋值区别详解

    我就废话不多说了,还是直接看代码吧! # -*- coding:utf-8 -*- #面试题,写一个方法,将一行字符串中所有的单词数量统计出来 class Person(object): TAG = ...

  6. jsp中头的导入两种方式区别

    1.<jsp:include page="top.jsp">先将top.jsp中的java脚本和jsp指令执行完毕以后再讲top.jsp页面加入面中 2.<%@ ...

  7. crack与split的区别_Split or Crack? Split 和 Crack 两词的区别(

    BBC Learning English – Q & A of the Week 128 About this script Please note that this is not a wo ...

  8. java三层架构(表示层,业务逻辑层,数据访问层,与两层的区别,三层架构的优缺点)

    目录 1 什么是三层 2 为什么使用三层 3 与两层的区别 1 什么是三层 UI(表现层): 主要是指与用户交互的界面.用于接收用户输入的数据和显示处理后用户需要的数据. BLL:(业务逻辑层): U ...

  9. 小米手环3nfc和4nfc哪个好_小米手环4NFC版和黑加手环NFC版哪个好 两款手环区别对比...

    黑加手环和小米手环都是相当出色的可穿戴设备,昨天正好小米手环4发布了,那么下面我就来说说小米手环4NFC版和黑加手环NFC版哪个更值得选择吧. 两款手环区别对比: 1.屏幕素质 小米手环4NFC和黑加 ...

最新文章

  1. centos7ftp服务器的搭建
  2. Huawei交换机配置两台交换机堆叠示例
  3. C语言中嵌入正则表达式
  4. 找出最大和第二大的数PHP,2020-09-01 十大经典排序算法总结php为例
  5. Yolo-v2 Visual Studio 2015安装时报错Team Explorer for Microsoft Visual Studio 2015解决办法
  6. linux系统怎么用vim,linux/unix
  7. Web前端技术分享:学习HTML和CSS的5大理由
  8. solr elasticsearch比较
  9. 电脑公司 Ghost XP SP3 国庆特别版 v2011.10
  10. mysql用户权限表join_MyBatis映射利用mysql left join 解决N+1查询问题
  11. python动态爬取知乎_python爬虫从小白到高手 Day2 动态页面的爬取
  12. 秒懂了微服务架构,看这本书就够了!
  13. [转]vim 如何编辑 GB2312 编码的文件?
  14. MS17010原生打法
  15. java动态时钟_Java实现动态模拟时钟
  16. java 求矩阵的伴随矩阵_求矩阵伴随矩阵的java实现
  17. 《宽带与接入网技术》第四章 以太网接入技术
  18. 量子计算机怎样输入数据,量子计算入门
  19. 跨境第三方支付有什么,怎么进行跨境支付?
  20. ios订阅的升级和降级

热门文章

  1. B01-在Excel中,编号包括字母和数字时,如何根据数字从大到小排序
  2. Verilog负数赋值与加法运算
  3. LSI-9260-8i阵列卡更换纪实
  4. Tab Switcher 快捷Tab切换器
  5. windows bat脚本编写
  6. 2023校园招聘求职报告
  7. 《小猪的逆袭》续《愤怒的小鸟》席卷安卓平台
  8. android 微信广播拉活,实战解析微信群快速拉完500人的方法
  9. Go语言全栈开发:结构体
  10. j74sJpo_qgPFXRPYm.=OJ_qgPNyyCMyzCMddMyybOJ_qPYm.NaxOJpfJE