有人可以解释DataReader,DataAdapter,数据集和DataView之间的区别吗?
答案 0 :(得分:34)
快速,
DataReader是一组结果的仅向前迭代器。当您不需要随机访问时(换句话说,您不能倒退),这通常是处理记录的最有效方式。它可以“扩展”到任意数量的记录,至少在内存压力方面,因为它一次只加载一条记录。获取DataReader的一种典型方法是使用DbCommand的ExecuteReader
方法。
DataSet表示一组DataTable对象。通常情况下,它只包含一个表,但如果使用多个SELECT语句执行查询,则DataSet将包含每个表的表。因为这是一个内存中表示,所以您必须小心将数据引入DataSet。您可以使用DataAdapter的Fill
方法“填充”DataSet。
DataAdapter是一种“数据管道”,它将数据从数据库引擎汇集到数据集中。这就是为什么每个数据库提供程序类型都有一个DataAdapter实现的原因。一个DataSet,许多提供者。
DataView就像是DataTable的虚拟子集。
答案 1 :(得分:5)
<强>的DataReader 强>
DataReader用于从数据库读取数据,在从数据库获取数据期间,它是一种只读取和转发的面向连接的体系结构。 DataReader用于迭代来自服务器的结果集,它将一次读取一条记录,因为与数据集相比,内存消耗将更少,并且它将非常快速地获取数据。通常我们将使用ExecuteReader对象将数据绑定到datareader。
<强>数据集强>
DataSet是一种断开连接的东方体系结构,这意味着在使用数据集期间不需要活动连接,它是DataTables和表之间关系的集合。它用于保存包含数据的多个表。您可以选择数据表单表,基于表创建视图并在关系上询问子行。 DataSet还为您提供了丰富的功能,例如将数据保存为XML和加载XML数据。
<强> DataAdapter的强>
DataAdapter将充当DataSet和数据库之间的桥梁。此dataadapter对象用于从数据库读取数据并将该数据绑定到数据集。 Dataadapter是一种面向断开连接的架构。
答案 2 :(得分:2)
我建议你阅读MSDN文档或者购买一本书。这是一个简短的回答:
答案 3 :(得分:0)
DataReader就像一个前向记录集。它一次获取一行,因此与DataSet相比,网络成本非常低(一次为所有行提供Fethces)。 DataReader是readonly所以我们不能对它们进行任何事务。 DataReader将是我们需要向用户显示数据的最佳选择,不需要任何交易。由于DataReader只是转发,因此我们无法随机获取数据。 .NET数据提供程序优化了数据引导程序以处理大量数据。
DataSet是Database对象集合的内存表示,包括关系数据库模式的表。 DataSet总是一个庞大的对象,与DataReader相比需要大量的内存空间。我们可以说DataSet是一个小型数据库,因为它将架构和数据存储在应用程序内存区域中。 DataSet一次从数据源中提取所有数据到其内存区域。因此,我们可以遍历对象以获取所需的数据,例如查询数据库。