数据适配器和数据读取器有什么区别?
ADO.NET提供了两个核心数据访问组件。优秀的事情是,它们在所有数据库上都是通用的,无论是SQL Server还是其他竞争性数据库。只有在使用SQL Server以外的数据库时,要使用的命名空间不同。
DataReader是从DbCommand对象的ExecuteReader方法返回的对象。它是结果集中行的仅向前游标。使用DataReader,您可以访问结果集的每个列、读取所有行,并在存在多个结果集时前进到下一个结果集。
DataAdapter是一个包含四个DbCommand对象的对象:分别用于SELECT、INSERT、DELETE和UPDATE命令。它通过Fill和Update方法在这些命令和DataSet之间进行调解。
Data Reader是在连接环境中使用的对象。 Data Adapter是在使用DataSet的断开连接的环境中使用的对象。
DataReader
是从数据库中检索记录的一种更快的方法。 DataReader
读取列。 DataReader
要求实时连接,但DataAdapter
需要断开连接的方法。 < / p >
与主要设计用于紧密耦合的客户机/服务器系统的经典ADO不同,ADO.NET是针对断开连接世界而构建的,使用DataSets/DataAdapter。
DataAdapter
遵循无连接导向架构,这意味着您不必与数据源连接,而DataReader
是连接导向架构,这意味着它需要一个活动的与数据源的连接才能运行。DataAdapter
是一个中间层/中间件,作为DataSet和数据库之间的桥梁,而DataReader
提供只向前、只读取访问数据使用服务器端游标(简单地说,它用于读取数据)。DataSet
,我们可以在与数据源断开连接的情况下操作和更新DataSet
的内容,并使用相关的DataAdapter
发送任何修改后的数据进行处理,而DataReader
只能从数据库读取数据而不能修改它。DataAdapter
对象用于从数据库中读取数据并将该数据填充到DataSet
中,而DataReader
仅使用Read()方法
读取数据。DataAdapter
相对较慢,而使用DataReader
可以通过检索数据及时可用以及(默认情况下)仅存储一行数据来提高应用程序性能,从而减少系统开销。数据阅读器是一种对象,通过它可以读取顺序数据流。它是一种只能向前的数据流,在其中不能返回以前的数据。 数据集和数据适配器对象帮助我们在断开模式下工作。数据集是表的缓存内存表示。数据通过数据适配器从数据源填充到数据集中。一旦数据集中的表被修改,更改将通过数据适配器广播回数据库。
DataAdapter作为DataSet和数据库之间的桥梁。这个dataadapter对象用于从数据库读取数据并将该数据绑定到dataset。Dataadapter是一种断开型架构。
DataReader用于从数据库中读取数据,它是一种只读取且只向前连接的架构,当从数据库获取数据时,DataReader会非常快速地获取数据。通常我们使用ExecuteReader对象将数据绑定到datareader。