我正在学习 ADO.Net。我读了这一行:-
DataReader 是“连接”方法,数据集是“断开”方法
从这句话我得出的结论是,在数据阅读器中我们需要建立与数据库的连接,而在数据集中我们不需要建立与数据库的连接。
但是如何在不建立连接的情况下访问数据。我知道我没有得到确切的含义。
请任何人都可以通过示例告诉我确切的含义。
ADO.net 架构,其中连接必须保持打开直到结束才能从数据库中检索和访问数据,称为连接架构。连接架构建立在这些类型之上 - connection
, command
,datareader
ADO.net架构中,只有在从数据库中检索到数据之前,连接才会保持打开状态,之后即使与数据库的连接关闭也可以访问,称为断开连接架构。ADO.net 的断开式体系结构建立在这些类型上- connection
、dataadapter
和。commandbuilder
dataset
dataview
将 DataSet 视为内存数据库,它包含 DataTables 并包含表数据(基于 Select 查询的所有数据或数据子集),甚至维护表之间的关系。在 DataSet 上可以执行更新/删除操作,它将通过 DataAdapter 对象同步到数据库。所以要显示数据它不需要连接到数据库一直作为DataReader,只要你想显示数据就需要连接到数据库。
在经典 ADO 中,RecordSet
对象可以在连接和断开模式下工作。在 Ado.Net 中,有两种不同的类型可用于满足这些场景中的每一个 -IDataReader
和DataSet
连接模式:在遍历结果集的只进流时保持连接到底层数据源。
断开模式:检索到的结果集保存在内存中,不再需要与数据库的连接进行遍历。
这篇MSDN 文章进一步比较了这两个对象并讨论了它们各自的优点,这比我在这里能够解释的要好得多。
连接架构:对于每个请求,点击数据库,获取数据并返回。您只能执行读取操作。连接应始终打开。使用数据读取器
断开连接架构:一次获取整个数据,然后执行您想要执行的任何操作。插入/更新/删除。无需始终打开连接。使用数据集,数据适配器
连接架构:在连接模型中,我们可以将任何应用程序连接到数据库并保持连接到数据库系统,即使它不使用任何数据库操作。对于此架构,我们使用Connection
和。Command
DataReader
断开式架构:在断开式模型中,我们将任何应用程序连接到数据库,直到我们调用 close 方法。在这个架构中,我们使用DataSet
和DataAdapter
。