Datareader,DataAdapter,Dataset,DataView之间的区别

时间:2011-08-14 05:29:53

标签: asp.net

有人可以解释DataReader,DataAdapter,数据集和DataView之间的区别吗?

4 个答案:

答案 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文档或者购买一本书。这是一个简短的回答:

  • 数据集是类数据库结构的内存中表示。它可以有一个或多个数据表并定义它们之间的关系,关键字段等。
  • 数据表是单个数据库表的内存中表示形式。您可以将它视为具有相同方式的列和行。
  • 数据视图是数据表的视图,有点像sql视图。它允许您对行进行过滤和排序 - 通常用于绑定到窗体控件。

答案 3 :(得分:0)

的DataReader

DataReader就像一个前向记录集。它一次获取一行,因此与DataSet相比,网络成本非常低(一次为所有行提供Fethces)。 DataReader是readonly所以我们不能对它们进行任何事务。 DataReader将是我们需要向用户显示数据的最佳选择,不需要任何交易。由于DataReader只是转发,因此我们无法随机获取数据。 .NET数据提供程序优化了数据引导程序以处理大量数据。

的数据集

DataSet是Database对象集合的内存表示,包括关系数据库模式的表。 DataSet总是一个庞大的对象,与DataReader相比需要大量的内存空间。我们可以说DataSet是一个小型数据库,因为它将架构和数据存储在应用程序内存区域中。 DataSet一次从数据源中提取所有数据到其内存区域。因此,我们可以遍历对象以获取所需的数据,例如查询数据库。