问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#中IDataReader和DataSet的区别是什么呢?

发布网友 发布时间:2022-05-03 01:51

我来回答

3个回答

懂视网 时间:2022-05-03 06:12

strConnect = "Data Source=localhost;Initial Catalog=cmsw;Integrated Security=True; Application Name=pgq"; DataSet dsCode = new DataSet(); using (SqlConnection sqlConn = new SqlConnection(strConnect)) { sqlConn.Open(); SqlDataAdapter sda = new SqlDataAdapter("SELECT top 200000 TRANCODE from JobRecord ", sqlConn); sda.Fill(dsCode, "Test"); sqlConn.Close(); } DateTime dt1 = DateTime.Now; foreach (DataRow dr in dsCode.Tables[0].Rows) { using (SqlConnection sqlConn = new SqlConnection(strConnect)) { string code = dr["TRANCODE"].ToString(); SqlCommand cmd = new SqlCommand("SELECT * from JobRecord WHERE TRANCODE=@TRANCODE ", sqlConn); cmd.Parameters.AddWithValue("TRANCODE", code); sqlConn.Open(); SqlDataReader dataRead = cmd.ExecuteReader(); if (dataRead.Read()) { Console.WriteLine("One Cycle:{0}",dataRead["TRANCODE"]); } sqlConn.Close(); } } DateTime dt2 = DateTime.Now; TimeSpan ts1 = dt2 - dt1; Console.Clear(); Console.WriteLine("Total MilSeconds:{0}", ts1.Milliseconds); DataSet dsTest2 = new DataSet(); using (SqlConnection sqlConn = new SqlConnection(strConnect)) { sqlConn.Open(); SqlDataAdapter sda = new SqlDataAdapter("SELECT top 200000 * from JobRecord ", sqlConn); sda.Fill(dsTest2, "dsTest2"); sqlConn.Close(); } int serialNo = 0; while (serialNo < 200000) { Random rand = new Random(); int index = rand.Next(1, 200000); var code = dsTest2.Tables[0].AsEnumerable() .Where(r => r.Field<string>("TRANCODE") == dsCode.Tables[0].Rows[index]["TRANCODE"].ToString()) .Select(r => r.Field<string>("TRANCODE")).ElementAtOrDefault(0); Console.WriteLine("Scend Cycle:{0}",code); serialNo++; } DateTime dt3 = DateTime.Now; TimeSpan ts2 = dt3 - dt2; Console.WriteLine("First Result, TotalSeconds:{0}; Second Result TotalSeconds:{1}", ts1.TotalSeconds, ts2.TotalSeconds); Console.ReadLine();

 

将数据一次性加载到DataSet与逐行从DB内读取的性能比较

标签:校验   apt   next   select   reac   init   nec   方式   value   

热心网友 时间:2022-05-03 03:20

datareader和dataset最大的区别在于,datareader使用时始终占用sqlconnection,在线操作数据库..任何对sqlconnection的操作都会引发datareader的异常..因为datareader每次只在内存中加载一条数据,所以占用的内存是很小的..因为datareader的特殊性和高性能.所以datareader是只是向前读的
读了第一条后就不能再去读取第一条了dataset则是将数据一次性加载在内存中.抛弃数据库连接读取完毕即放弃数据库连接因为dataset将数据全部加载在内存中.所以比较消耗内存但是确比datareader要灵活可以动态的添加行,列,数据.对数据库进行回传更新操作

热心网友 时间:2022-05-03 04:38

用connection对象和command对象与数据库连接并交互后,有两种方法来访问获取的结果。
1.使用DataReader对象,用来逐行从数据源获取数据并处理;
2.使用DataSet对象,用来将数据存到内存中进行处理。
C#中IDataReader和DataSet的区别是什么呢?

datareader和dataset最大的区别在于,datareader使用时始终占用sqlconnection,在线操作数据库..任何对sqlconnection的操作都会引发datareader的异常..因为datareader每次只在内存中加载一条数据,所以占用的内存是很小的..因为datareader的特殊性和高性能.所以datareader是只是向前读的 读了第一条后就不能再去...

C#中IDataReader和DataSet的区别是什么呢?

1.使用DataReader对象,用来逐行从数据源获取数据并处理;2.使用DataSet对象,用来将数据存到内存中进行处理。

C#之 DataReader 和 DataSet 的区别

DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection(俗称:非断开式连接),在线操作数据库时,任何对SqlConnection的操作都会引发DataReader的异常。因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的。由于DataReader的特殊性和高性能,所以DataReader是只进的,你读了第...

C#之 DataReader 和 DataSet 的区别

DataSet是一数据存储的类,你可以把数据库中的数据读取到内存中,在内存中按照DataSet这种格式进行数据的统计。而DataReader是一种读取数据的方式,也可以认为是内存中数据与数据库中数据的一种桥梁,例如,我们可以通过DataReader把数据库中数据读到内存表中(DataSet)中。而DataReader与DataAdapter是有可比...

c# DataReader和用DataAdapter来填充DataSet 两者的效率的区别有多大...

表面上看 DataReader 要比 DataSet效率高.因为DataReader是在线读取,也就是说在DataReader 读取数据期间,客户端和数据库之间始终保持一个连接,一次只读一条数据;而DataSet从数据库中读取一堆数据 到 客户端后就可以断开和数据库的连接了.用 DataReader 会使数据库服务器的压力增大,会降低数据库服务器...

2.DataReader与Dataset有什么区别?哪一个更适合于客户端?为什么?

DataReader是数据库保持连接方式读取纪录的,DataSet是不保持连接方式在客户端内存里虚拟的数据集,里面的内容是保存在内存中,只有更新的时候才连接到数据库更新 因此更适合客户端用!

DATASET 和 DATAREADER区别

前者DataSet是用来从数据库中读取数据的.面后者DataReader是用来接受读出来的数据并进行保存在内存中.前者DataSet一但读完.数据就不能再访问,后者DataReader是可以较持久访问的.而且还可以把它当作数据表一样做很多的查询运算.在一般的状况下,DataReader 的速度不仅比 DataSet 来得快,在 IIS 服务器上所...

c# 中 sqldatareader 和 sqldataadapter 、dateset的比较

1.性能。DataSet中的数据完全保存在内存中,所以会占用内存。但是通常情况下DataReader读出的数据实例化以后也是在内存中的,所以两者没有多大区别。但是,当数据量极大的情况下,使用DataSet时,不论是你分页还是不分页,它的效率之低,和SqlDataReader相比都是不可同日而语的,尤其是你在分页情况下,...

c#中关于Dataset,datarow的数据访问问题

DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,...

dataset和datareader哪个更快

DataReader。DataReader读取速度快于DataSet。DataReader是数据提供者类,DataSet是一般性类,借助于DataAdapter来填充数据。DataSet是离线操作数据,在事务中使用时要注意,DataSet填充数据后会断开连接,也就会释放锁。

间和中的区别是什么 日语间和中的区别是什么 中山和上中有什么区别 种微量元素和微量元素的区别是什么 里和中有什么区别 少中老年龄区别是什么 之间和中间有什么区别 dsa设备大c和中c的区别 中青年和中老年的区别
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑开机时怎么进入安全模式 广东医学院大一新生宿舍怎么样,是不是都是学校分配,不能自己选择_百度... 2012高考理科 考到545 想知道怎么填志愿 我的分数545可以报广东医学院边d专业?我系广东考生 高考排名。高考报志愿。广东医学院。 今年545分补录广东医学院还有机会吗? 徒步穿什么鞋 夫妻之间感情再不好都不要去互相伤害 平时可以穿登山鞋吗 大学生都爱去哪些网站? 是不是护肤品,雅诗兰黛最贵? 为什么黑人白人黄人不能通过肤色判断? 韩国whoo哪个系列最贵 白人、黑人、黄人的区别和特点有哪些? 黑人 黄人 白人的区别?除肤色! 热血英豪傀儡师血魔给黄人好还?是白人好? 印度美女到底是白人还是黄人 汉族由那些民族融合而来?现在的汉族血统多少是华夏族血统? 国产的最贵的那个护肤品是什么牌子来着 我是黄白混血,如图是我,我看起来比较偏向白人还是黄人,如果我要是去美国,白人能不能看出来我是黄白 如果黄人和白人结婚,那他儿子是黄还是白?白人和黑人呢,黑人和黄人呢? 求民族主义者小说。 右翼文学“民族主义文学”的性质是什么? 游戏绑定了一个,可以换另一个微信绑定吗? 左联成立后,文坛上出现的&quot;民族主义文学&quot;是一个? 梦见自己的子女快要死去异味的什么? 请问谁知道除了爱奇艺,还有那个电视软件可以看3D电影? 家里智能电视爱奇艺里的左右格式3D电影用什么眼镜看 火影忍者手游,假如你有两个,那么怎样换号呢!- 问一问 为什么爱奇艺能把3d电影处理的不用眼镜就能看 自然堂哪个系列最贵 最好最贵的护肤品是什么 梦见猫和狗一道产仔 国产最好最贵的护肤品是什么牌子 理科好适合学什么专业? 做梦梦见一只狗生了一只猫,但是狗还让猫吃它的奶 。 梦见自己生一条狗和猫 理科生读什么专业好 理科选什么专业好 理科学什么专业好 07版word插入图片的 颜色 填充 选项在哪里?谢谢 WORD中的背景填充怎么弄的 cad中怎样确定自己所画图占图纸大小是A4?直接从图形界限中设置成297,210可以吗? CAD画图前我把图形界限设置成A4的,画图时按1:1画的,图形显示的很小,怎么才能把这个图在A4图幅中显示适 word 中 设置整篇文档背景填充效果纹理为“羊皮纸”在哪里的?? 画图图纸CAD如何设置A4页面,我输limits空格,选择左下角点,选择右上点输入297,210,没成功,求正解 cad未设置图形界限前默认图纸大小是多少? 我想设置cad的A4横放图形界限,可是输入297,210后显示第二维点无效,请问怎么回事啊 宋公明三败高俅概括 宋公明三败高俅是名著《水浒传》中精彩的篇章,大致内容是什么?