创建使用ADO DataSet连接问题
创始人
2024-06-18 16:21:31
0

本文就详细说明ADO DataSet文档以及MSDN站点都推荐所有人运用using(sqlconnection cn=new sqlconnection()){}这样地方式来创建Connection,因为当超过{}后,.net framwork会自动执行Connection.dispose()方法,所以可以确保Connetion被及时地关闭。

1)那么及时地调用.dispose()真地这么重要么,ADO DataSet如果一个对象超出了生存空间,在.net中不是会自动被GC(垃圾回收器)自动清理地么?

这个问题其实是由于GC导致地,.net中运用地GC,他对于工作并不像我们这样勤奋。GC只有当外界环境非常恶劣地时候(没有足够地内容分配地时候)他才会动手打扫卫生(清理不运用地对象)。所以对于Connection 即使超出了变量地生命周期,它可能还没有被GC干掉。

依旧未将Connection返回给Connection Pool。所以这就导致了下一个连接可能会有Connection Pool中没有Available地Connection而从新打开一个新地连接,无端地浪费了多余地性能。所以ADO.net team反复强调要及时地关闭当前地连接。一个***地方法就是运用using{}block 系统会在退出{}地时候自动调用connection.dispose方法,而dispose会自动去执行close方法,释放当前地connection。果您地项目是ASP.NET/WebService 我们会建议您运用Connection Pool因为这个功能可以帮助您减少由于频繁创建连接带来地巨大系统开销。

如果您地系统是一个C/S模型结构,我们会不建议您运ADO DataSet用Connection Pool,这是由于一般而言,在C/S这样地模型中,每一个用户均为运用自己地用户名密码去连接后台数据库,运用地均为不同地Connection String,根本不会出现频繁出现打开/关闭数据库连接地问题。#t#

实际上在C/S模型中,您可以一直使一个Connection维护open地关闭,而不Close,这样更可以提高您系统地性能,不会由于Connection Pool地额外检查而带来系统资源地消耗,相应情况下也不必担心一直打开地Connection长时间地占用了连接,导致其他地连接无法从connecADO DataSettion pool 及时获取到。(因为您根本就不需要运用到connection pool)。#t#

ADO.NET给了你从数据源返回什么数据的明显控制,也提供了在数据集中存储了多少数据的控制。在设计应用程序时可以考虑以下技巧:  
避免使用DataAdapter.Fill,它使用了startRecord和maxRecords值。使用这种ADO DataSet方式填充数据集时,数据集只填充由maxRecords参数指定的记录个数(从参数startRecord指定的记录开始),而不管返回的整个查询。这导致读取过时的"不想要的"记录,同时使用了不必要的服务器资源来返回补充记录。  

用于在某个时候只返回一页记录的技术之一是建立一个SQL语句,该语句包含一个WHERE和ORDER BY子句,并有TOP判定。这种技术依赖于识别每个唯一行的方法。当导航到下一页的记录时,修改WHERE子句使它包含所有唯一标识比当前v页标识大的记录;当导航到前面一页时,修改WHERE子句使它包含所有唯一标识比当前页标识小的记录。对于两种查询都只返回记录的TOP页的记录。当导航到前面一页时需要对记录进行降序排列,ADO DataSet这将返回查询的末尾页(如果需要可以在显示前对记录进行重新排序)。  

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...