C# 在ADO.NET中,断开连接和连接方法的确切含义是什么

C# 在ADO.NET中,断开连接和连接方法的确切含义是什么,c#,asp.net,ado.net,C#,Asp.net,Ado.net,我正在学习ADO.Net。 我读到这一行:- DataReader是“连接”方法,而dataset是“断开连接的” 接近 从这句话中,我得出了这样的结论:在data reader中,我们需要建立到数据库的连接,而在dataset中,我们不需要建立到数据库的连接 但是,如果不建立连接,人们如何访问数据呢?我知道我没有得到确切的含义 请任何人都能举例说明确切含义。断开连接=建立连接、获取数据、关闭连接 已连接=建立连接,保持连接活动,调用Close时关闭连接 有关更多信息,请参见将数据集视为内存数据

我正在学习ADO.Net。 我读到这一行:-

DataReader是“连接”方法,而dataset是“断开连接的” 接近

从这句话中,我得出了这样的结论:在data reader中,我们需要建立到数据库的连接,而在dataset中,我们不需要建立到数据库的连接

但是,如果不建立连接,人们如何访问数据呢?我知道我没有得到确切的含义


请任何人都能举例说明确切含义。

断开连接=建立连接、获取数据、关闭连接

已连接=建立连接,保持连接活动,调用Close时关闭连接


有关更多信息,请参见

将数据集视为内存数据库上的链接,它包含DataTables和tables数据(基于Select查询的所有数据或数据子集),甚至维护表之间的关系。在数据集上,您可以执行更新/删除操作,它将通过DataAdapter对象同步到数据库。所以,要显示数据,它不需要一直作为DataReader连接到数据库,只要您想显示数据,DataReader就需要连接到数据库

在经典ADO中,
记录集
对象可以在连接和断开模式下工作。在Ado.Net中,有两种不同的类型可用于满足这些场景中的每一种-和

连接模式:在只向前遍历结果集流时,保持与基础数据源的连接

断开连接模式:检索到的结果集保留在内存中,遍历不再需要与数据库的连接


这进一步比较了这两个对象,并讨论了它们各自的优点,这比我在这里解释的要好得多。

ADO.net体系结构称为连接体系结构,在该体系结构中,从数据库检索和访问数据的连接必须一直保持打开状态。连接的体系结构建立在这些类型的基础上-
连接
命令
数据读取器


ADO.net体系结构称为断开体系结构,在这种体系结构中,连接仅在从数据库检索到数据之前保持打开状态,以后即使关闭到数据库的连接也可以访问。ADO.net的断开连接体系结构是基于以下类型构建的:
连接
数据适配器
命令生成器
数据集
数据视图

连接架构:在连接模式中,我们可以将任何应用程序连接到数据库,并保持与数据库系统的连接,即使它不使用任何数据库操作。对于这个架构,我们使用
连接
命令
数据读取器


断开连接的体系结构:在断开连接的模型中,我们将任何应用程序连接到数据库,直到调用close方法。在此体系结构中,我们使用
数据集
数据适配器

连接的体系结构:对于每个请求,点击数据库,获取数据并返回。只能执行读取操作。连接应始终打开。使用数据读取器


断开连接的体系结构:立即获取整个数据,现在执行您想要执行的任何操作。Isert/更新/删除。无需始终打开连接。使用数据集、数据适配器

查看,数据集是一种过时的方法。看看实体框架和/或其他类似于NHibernate的or/M。谢谢兄弟。你能给出一些真实的例子来澄清吗me@Sourabh我已经浏览了链接。我对OLEDB和ODBC有些困惑。这些是什么?我不是从链接中得到的,也没有给出任何图形表示。@Sourabh在ADO.Net中的数据存储在客户端客户端只呈现html或只呈现html为什么在Datareader的情况下始终需要连接到数据库,因为当您读取记录时,例如reader.Read(),它直接从数据库读取,因此需要连接。@Adee您确定吗?我想在执行ExecuteReader()之后数据被缓存到windows中的本地内存中,当执行reader.Read()时,它从这里读取数据,而不是直接从数据库读取。记录集?这是.NET。记录集是一个经典的ADODB概念:Pi并不意味着一个实际的类型……也许我应该改写这个