动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库学院 > 数据库技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 数据库技巧 ]的信息

本月文章推荐
.SQL Server 某些条件下求某日的日.
.详细讲解SQL Server索引的性能问.
.select*但却不想显示所有列的示例.
.向你推荐一个特别好用的分页存储.
.一种处理不规范日期数据的好方法.
.将一个更新划分为几个批次.
.用SQL Server为Web浏览器提供图像.
.获取SQL Server的当前连接数.
.存储过程中如何执行带输出参数的.
.SQL SERVER 2005中同义词实例.
.如何查看SQL SERVER的版本.
.sql server 2005 数据库的检查与.
.用SQL Server为Web浏览器提供图像.
.在SQL Server 2005数据库中实现自.
.SQL 视图效率和连接超时设置.
.SQL Server与Excel数据互导.
.在SQL Server 2005中实现异步触发.
.在数据库里取前10条数据.
.最详细的SQL注入相关的命令整理.
.SQL Server中查询时显示行号的方.

解决SqlTransaction用尽的问题(SQL处理超时)

文章类别:数据库技巧 | 发表日期:2006-1-16 |


有时候程序处理的数据量比较小时,四平八稳,一切安然无恙,但数据量一大,原先潜伏的问题就暴露无遗了。
原访问数据库的代码为:
 1SqlConnection conn = new SqlConnection(strConn);
 2conn.Open();
 3SqlTransaction trans = conn.BeginTransaction();
 4try
 5{
 6    CEngine.ExecuteNonQuery(trans,CommandType.Text,sql);
 7    trans.Commit();
 8}
 9catch(SqlException ex)
10{
11    trans.Rollback();
12    ErrorCode = ex.Number;
13    Info = "数据操作失败:" + ex.Message;
14}
15finally
16{
17    trans.Dispose();
18    conn.Close();
19}
20
21
22
运行时,一旦出现数据量过大或者处理时间较长,则系统会提示出错。错误提示为“SqlTransaction已经用完;它再也不能使用。”

开始时,我怀疑是跟内存有关。因为系统需要做好事务回滚的准备,每执行一条插入或修改的SQL,都要有一定的开销,数据量一大,恐怕就吃不消了。不过我查了一下SQL SERVER的资料,未见提到内存的问题。
后来想到,数据库连接SqlTransaction有个时间问题。默认是15秒。数据量大的时候,这个时间很可能就不够了。于是改为:
 1SqlConnection conn = new SqlConnection(strConn);
 2conn.Open();
 3SqlTransaction trans = conn.BeginTransaction();
 4try
 5{
 6    SqlCommand cmd = new SqlCommand();
 7    cmd.CommandType = CommandType.Text;
 8    //连接时限改为300秒
 9    cmd.CommandTimeout = 300;
10    cmd.CommandText = sql;
11    cmd.Connection = conn;
12    cmd.Transaction = trans;
13    cmd.ExecuteNonQuery();
14    trans.Commit();
15}
16catch(SqlException ex)
17{
18    trans.Rollback();
19    ErrorCode = ex.Number;
20    Info = "数据操作失败:" + ex.Message;
21}
22finally
23{
24    trans.Dispose();
25    conn.Close();
26}
修改后在测试,问题解决:)


上一篇:以前编写Like谓词被忽略的使用方法 人气:6810
下一篇:在编写存储过程时使用 Set NoCount On 人气:9780
点击此处浏览全部sql server的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-16 轩溪下载系统 v3.78 build 0515
2008-5-16 普沙B2B 浙江省商贸网 v2.0
2008-5-16 asp抓蜘蛛的小程序 v1.0
2008-5-16 齐齐乐网私服发布站 仿haosf新版
2008-5-16 IssTech信息反馈系统 v1.0
2008-5-16 自由领域大头贴(js接口版) 修正版
2008-5-16 医院网站系统
2008-5-16 智拓-分类信息管理系统 v5.0
2008-5-16 千博企业网站管理系统静态HTML专
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報