[C#.net]SqlDataAdapter 执行超时已过期 完成操作之前已超时或服务器未响应
随着数据库数据的不断增大,查询时间也随之增长。而客户端与数据库连接时间以及命令的执行时间都是有限的.默认为30s。
所以在查询数据的时候,程序会出现 “超时时间已到。在操作完成之前超时时间已过或服务器未响应” 异常。
经检查后发现,这是因为页面在读取数据库中的数据时耗时太长,超过了默认的30秒。所以报出了以上错误,解决该问题的方法是:
一,优化sql语句,提高查询速度
二,延长sql超时的时间设置
最好的方法当然是第一种了,这才是治本的方法。但sql优化可不是一件简单的活,具体的环境有不同的方法。本章主要看一下如何通过第二种方法来解决问题。
1,首先设置sql的执行超时时间。
如果我们的sql是直接使用SqlCommand对象来执行的,那么可以设置SqlCommand的CommandTimeout属性的值。
比如:
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
cmd.CommandTimeout=
}
这样我们就设置了cmd的超时间时间是180秒。
注意:SqlCommand.CommandTimeout属性的单位为秒,默认值是30。
如果我们的sql是利用SqlDataAdapter对象来获取数据集合,那么我们还可以分别通过以下方法设置SqlCommand的超时时间。
using (SqlConnection connection = GetConnection())
{
…… SqlDataAdapter sqlDA = new SqlDataAdapter(); sqlDA.SelectCommand.CommandTimeout = ;//设置查询sql的超时时间
sqlDA.InsertCommand.CommandTimeout = ;//设置插入sql的超时时间
sqlDA.UpdateCommand.CommandTimeout = ;//设置修改sql的超时时间
sqlDA.DeleteCommand.CommandTimeout = ;//设置删除sql的超时时间 ……
}
也许大家在有些网站上看到以下解决方法
1),在数据库的连接字符串中添加超时时间设置,如下:
SqlConnection con = new SqlConnection'server=.;database=myDB;uid=sa;pwd=password;Connect Timeout=180'
但我有测试过,无效,也有可能是我的测试方法错误吧!!!
2),设置SqlConnection对象的超时时间。
该方法是肯定行不通了,因为SqlConnection的ConnectionTimeout属性根本就是个只读属性,不允许设置值。从它的定义就可以看出来了,定义如下:
//
//摘要:
//获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
//
//返回结果:
//等待连接打开的时间(以秒为单位)。默认值为 15 秒。
//
// 异常:
//System.ArgumentException:
//所设置的值小于 0。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[ResDescription("SqlConnection_ConnectionTimeout")]
public override int ConnectionTimeout { get; }
2,设置asp.net请求的超时时间。
在上面的设置中我们有处理了sql的超时时间,但可能你的设置还是无效。这是为什么呢?因为你还没有设置asp.net请求的超时时间。
要如何设置asp.net请求的超时时间呢?修改web.config的httpRunTime节即可,示例如下:
<system.web>
<httpRuntime executionTimeout="" />
</system.web>
其中httpRuntime属性与executionTimeout属性的意思分别如下:
httpRuntime:配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求。
executionTimeout:设置asp.net关闭前允许发生的上载秒数
设置完这两步,我们的问题才算的真正的解决了。
[C#.net]SqlDataAdapter 执行超时已过期 完成操作之前已超时或服务器未响应的更多相关文章
- DbCommand :执行超时已过期。完成操作之前已超时或服务器未响应。
问题:“Timeout 时间已到.在操作完成之前超时时间已过或服务器未响应.”的解决方法 在一个链接数据库的时候,老是出现超时的错误:执行超时已过期.完成操作之前已超时或服务器未响应. 就是给这个链接 ...
- c#执行插入sql 时,报错:异常信息:超时时间已到。在操作完成之前超时时间已过或服务器未响应
问题:c#执行插入sql 时,报错:异常信息:超时时间已到.在操作完成之前超时时间已过或服务器未响应 解决: SqlCommand cmd = new SqlCommand(); cmd.Comman ...
- timeout Timeout时间已到.在操作完成之前超时时间已过或服务器未响应
Timeout时间已到.在操作完成之前超时时间已过或服务器未响应 问题 在使用asp.net开发的应用程序查询数据的时候,遇到页面请求时间过长且返回"Timeout时间已到.在操作完成之间超 ...
- (摘)timeout Timeout时间已到.在操作完成之前超时时间已过或服务器未响应的几种情况
Timeout时间已到.在操作完成之前超时时间已过或服务器未响应 问题 在使用asp.net开发的应用程序查询数据的时候,遇到页面请求时间过长且返回"Timeout时间已到.在操作完成之间超 ...
- Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
近来遇到这样一个错误:Timeout 时间已到.在操作完成之前超时时间已过或服务器未响应.错误截图如下: 错误原因分析:产生错误时我执行的操作需要的执行时间比较长.我测试了一下,那个操作用到的存储过程 ...
- WebForm+Web.config: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。
ylbtech-Error-WebForm+Web.config: 超时时间已到.在操作完成之前超时时间已过或服务器未响应. 超时时间已到.在操作完成之前超时时间已过或服务器未响应. 1.A,错误代码 ...
- sqlserver Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应
随着数据库数据的不断增大,查询时间也随之增长.今天在之前一个项目中执行数据库查询超过30秒就报“Timeout 时间已到.在操作完成之前超时时间已过或服务器未响应.”了,网上找了些文章,是在.co ...
- 超时时间已到。在操作完成之前超时时间已过或服务器未响应。 (.Net SqlClient Data Provider)
超时时间已到.在操作完成之前超时时间已过或服务器未响应. (.Net SqlClient Data Provider) 在做一个小东西的时候出现了这个问题,就是使用VS调试几次项目后,使用SQL Se ...
- MSSQL2005:“超时时间已到。在操作完成之前超时时间已过或服务器未响应”
1.今天在整合项目中有这样一个需求,就是要改变以存在表字段的文本的大小,如把char(15)改成varchar(50). 2.此时以存在表已有1885742条数据,在直接下面进行调用 ALTER TA ...
随机推荐
- linux光标操作
看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动. 在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作. 但是事情也不是那么简单,还是需要知道“如何去 ...
- git版本冲突解决
1. 使用git log命令查看所有的历史版本,获取某个历史版本的id,假设查到历史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96. git log 2. ...
- redis的使用与 django的redis的使用
1. 使用redis数据库分为两种: 第一种是在python语言中直接使用的方式, 第二种就是在django中使用django_redis模块来数用 第一种直接在python语言中使用redis im ...
- 实现ls-l功能
实现代码 #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <diren ...
- Python module ---- argparse
argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行参数,程序只需定义好它要求的参数,然后argpars ...
- Druid中配置双数据库
配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...
- 关于 登录框的测试的一些case
---恢复内容开始--- 最近的一个task是需要测试一个登录的界面,我的产品是应用程序,不是网页,所以,测试起来,会相对简单一些 还是按照 质量模型的角度,来思考这个 页面的测试 Requireme ...
- 2018-2019-2 20175213实验一 《Java开发环境的熟悉》实验报告
第一部分实验要求:1 建立“自己学号exp1”的目录2 在“自己学号exp1”目录下建立src,bin等目录3 javac,java的执行在“自己学号exp1”目录4 提交 Linux或Window或 ...
- spring mvc 框架校验常用注解
@AssertFalse 被注解的元素必须为false@AssertTrue 被注解的元素必须为false@DecimalMax(value) 被注解的元素必须为一个数字,其值必须小于等于指定的最小值 ...
- 初学c# -- 记录QQ键盘
扫描进程,如果QQ启动了,开始记录键盘,别的程序都不记录.记录到e:\log.txt里面,当然也可以修改为截屏+记录发送到邮箱或客户端 进程 Process[] p = Process.GetProc ...