首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 网站实际开发中 关于DataReader 和 DataSet 的使用问题? [已结贴,结贴人:DshirenJ]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DshirenJ
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-24 16:30:05 楼主
    那种会稳定些?
    即不容易出现获取不到连接的问题?(连接池已满...)
    高手们用那种比较多呢?
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 16:39:531楼 得分:25
    “连接池已满”是因为忘记了在代码中及时关闭连接,跟你的标题中的两种东西没有直接关系,这两种都可以使用一个或者许多个连接。

    至于那种“比较多”,我早已经没有感觉了。任何人可以采取任何形式。如果一个人认为DataReader足够,我会考虑一下我是不是对数据分析需求写得太简单了。如果我的数据处理需求足够复杂,而一个人可以使用DataReader达到功能需求,我没有任何意见。至于说那种编程更简练,由编程者自己去选择吧。至于考虑“性能差异”,其实页面对象从开始实例化之后就执行了复杂几千倍被的许多代码,为什么在这千分之一的地方去提高几分之一秒的效率?如果在逻辑设计、流程、缓存等等大的方面任何一个地方进行优化,程序提高至少百分之几十的效率,甚至提高数倍效率,才值得牺牲编程的简洁去追求速度。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 16:45:052楼 得分:0
    如果你检测页面实例化到销毁所花的时间,当你的程序从DataSet到完全使用DataReader修改之后,时间几乎没有缩短。毫无疑问,肯定有一些缩短(如果故意用逻辑极其简单的数据读取程序来测试),但是没有有意义的缩短。对于简单程序,选择DataReader还是DataSet,更多地是个人爱好问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • popeyepower
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 16:47:143楼 得分:0
    datareader遍历速度快.
    dataset能做到所谓的"离线访问".
    各有各的好处,哪里用什么,看需求
    如果其中一种能完全取代另一种,那微软也没必要出两种对象.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gui0605
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 17:05:384楼 得分:25
    个人习惯问题.不过我认为做WEB用datareader的效率会好一些.即使如sp1234所说,只能提高百分之一,程序不就是一点点优化才能达到更好的性能么?
    但是二者的差别确实非常小,所以用哪个,无所谓
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zengxie
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 17:09:595楼 得分:0
    “连接池已满”是因为忘记了在代码中及时关闭连接,跟你的标题中的两种东西没有直接关系,这两种都可以使用一个或者许多个连接
    不过我认为做WEB用datareader的效率会好一些.即使如sp1234所说,只能提高百分之一,程序不就是一点点优化才能达到更好的性能么?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DshirenJ
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 17:45:016楼 得分:0
    感谢各位关注!

    及时关闭连接这点是肯定的,我就是这么做的,可就是不明白怎么还会有那个异常出现。
    可不可以这么说?---只要及时关闭连接,就不会有这种情况出现??
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DshirenJ
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 17:46:297楼 得分:0
    个人比较习惯用DataReader
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • showbo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      3

    发表于:2008-05-24 17:49:158楼 得分:0
    速度上DataReader和DataTable好过DataSet。。。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • loveniki
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 17:50:359楼 得分:0
    “连接池已满”是因为忘记了在代码中及时关闭连接,跟你的标题中的两种东西没有直接关系,这两种都可以使用一个或者许多个连接
    不过我认为做WEB用datareader的效率会好一些.即使如sp1234所说,只能提高百分之一,程序不就是一点点优化才能达到更好的性能么?
    ----------------------
    我有个疑问:我的访问是用的下载的SqlPager,他的内部机制应该是会关掉的吧?
    我用using(SqlDatareader sdr=Dataaccess.sqlhelper.******)这种形式读取数据,这个应该是自己关掉吧??
    不用sdr.close()了吧?
    现在的问题是:如果将上面的语句放到一个循环语句里面,很容易出现 "连接池已满"这种情况(前提是可能循环1,2百次),如果换成dataset,情况会好很多,
    据说是 datareader的并发问题,哪位高手给解释下?????

    另外个问题:高手们都是自己写访问数据库的类,还是用下载的DLL文件?????
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DshirenJ
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 17:56:1810楼 得分:0
    很多人在用sqlHelper.
    "连接池已满"....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Magicwords
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 19:39:5611楼 得分:0
    随便用吧,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ppp7p
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 19:51:4012楼 得分:0
    连接池是因为你没有能够及时关闭连接.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jikun6666
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 23:30:3913楼 得分:0
    学习了,个人感觉这种东西要自己多做才能体会一点
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • amandag
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      5

    发表于:2008-05-24 23:47:5014楼 得分:0
    只要能保证尽可能晚地打开连接,尽可能早地关闭连接,使用DataReader效率还是不错的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ch00696666
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 00:18:5615楼 得分:0
    看看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • treesky
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 00:24:3216楼 得分:0
    DataReader效率较好!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • 46539492
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 09:37:0517楼 得分:0
    一。连接池已满
    打开的数据库链接要及时关闭。
    二、关于datareader和dataset
    datareader是只读向前的,如果你只是显示数据,建议用datareader
    dataset相当于内存中的数据库,不过是离线的。
    占用的内存比较多,
    但是可以做一些数据的更新,也就是对dataset中数据的修改可以更新到数据库
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuqian4243
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 10:18:1318楼 得分:0
    引用 16 楼 treesky 的回复:
    DataReader效率较好!


    这个绝对赞成的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • loveniki
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 16:16:4819楼 得分:0
    引用 9 楼 loveniki 的回复:
    “连接池已满”是因为忘记了在代码中及时关闭连接,跟你的标题中的两种东西没有直接关系,这两种都可以使用一个或者许多个连接 
    不过我认为做WEB用datareader的效率会好一些.即使如sp1234所说,只能提高百分之一,程序不就是一点点优化才能达到更好的性能么? 
    ----------------------
    我有个疑问:我的访问是用的下载的SqlPager,他的内部机制应该是会关掉的吧?
    我用using(SqlDatareader sdr=Dataaccess.sqlhelper.******)这…



    我的问题大家怎么看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DshirenJ
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 17:42:0420楼 得分:0
    谢谢各位,结贴!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved