SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 这两个的区别
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 这两个的区别相关推荐
- SqlConnection.ConnectionTimeout 与 SqlCommand.CommandTimeout 及SqlBulkCopy.BulkCopyTimeout属性
SqlConnection.ConnectionTimeout : 1. 说明: 获取在尝试建立连接时终止尝试并生成错误之前所等待的时间. 2. 默认值:等待连接打开的时间(以秒为单位).默认值为 1 ...
- SqlConnection.ConnectionTimeout 与 SqlCommand.CommandTimeout
SqlConnection.ConnectionTimeout 属性表示: 获取在尝试建立连接时终止尝试并生成错误之前所等待的时间. 通过在连接字符串中使用 ConnectTimeout 或 Conn ...
- SqlCommand.CommandTimeout超时用户请求当前操作
解:读取Oracle超时造成的,设置超时时间为300s,注意单位s,SqlCommand.CommandTimeout的单位是s,原单位是180s,读取时间为220s左右,所以超时,改为300s,问题 ...
- @query传参_VueRouter之query与params两种传参区别
传参是前端经常需要用的一个操作,很多场景都会需要用到上个页面的参数,比如传个id获取个详情信息,今天咱们就来看看Vue中是怎么实现这种传递参数得 在Vue中提供了两种方法来进行路由传参:query 和 ...
- python类的命名空间_Python之关于类变量的两种赋值区别详解
我就废话不多说了,还是直接看代码吧! # -*- coding:utf-8 -*- #面试题,写一个方法,将一行字符串中所有的单词数量统计出来 class Person(object): TAG = ...
- jsp中头的导入两种方式区别
1.<jsp:include page="top.jsp">先将top.jsp中的java脚本和jsp指令执行完毕以后再讲top.jsp页面加入面中 2.<%@ ...
- 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 ...
- java三层架构(表示层,业务逻辑层,数据访问层,与两层的区别,三层架构的优缺点)
目录 1 什么是三层 2 为什么使用三层 3 与两层的区别 1 什么是三层 UI(表现层): 主要是指与用户交互的界面.用于接收用户输入的数据和显示处理后用户需要的数据. BLL:(业务逻辑层): U ...
- 小米手环3nfc和4nfc哪个好_小米手环4NFC版和黑加手环NFC版哪个好 两款手环区别对比...
黑加手环和小米手环都是相当出色的可穿戴设备,昨天正好小米手环4发布了,那么下面我就来说说小米手环4NFC版和黑加手环NFC版哪个更值得选择吧. 两款手环区别对比: 1.屏幕素质 小米手环4NFC和黑加 ...
最新文章
- centos7ftp服务器的搭建
- Huawei交换机配置两台交换机堆叠示例
- C语言中嵌入正则表达式
- 找出最大和第二大的数PHP,2020-09-01 十大经典排序算法总结php为例
- Yolo-v2 Visual Studio 2015安装时报错Team Explorer for Microsoft Visual Studio 2015解决办法
- linux系统怎么用vim,linux/unix
- Web前端技术分享:学习HTML和CSS的5大理由
- solr elasticsearch比较
- 电脑公司 Ghost XP SP3 国庆特别版 v2011.10
- mysql用户权限表join_MyBatis映射利用mysql left join 解决N+1查询问题
- python动态爬取知乎_python爬虫从小白到高手 Day2 动态页面的爬取
- 秒懂了微服务架构,看这本书就够了!
- [转]vim 如何编辑 GB2312 编码的文件?
- MS17010原生打法
- java动态时钟_Java实现动态模拟时钟
- java 求矩阵的伴随矩阵_求矩阵伴随矩阵的java实现
- 《宽带与接入网技术》第四章 以太网接入技术
- 量子计算机怎样输入数据,量子计算入门
- 跨境第三方支付有什么,怎么进行跨境支付?
- ios订阅的升级和降级