2013-03-22 59 views
3

我在学习ADO.Net。 我读这条线: -ADO.NET中的断开连接方法的确切含义

DataReader的“连接”的方法和数据集是“断开” 方法

从这句话中,我得出了这样的结论,在数据读取器,我们需要建立在数据集中连接到数据库时,我们不需要建立与数据库的连接。

但是,如果没有建立连接可以访问数据。我知道我没有得到确切的含义。

请任何人都可以通过例子告诉我确切的意思。

+0

看看http://stackoverflow.com/questions/1083193/whats-better-dataset-or-datareader和http:// sadi02。 wordpress.com/2008/06/30/adonet-datareaderconnected-and-datasetdisconnected-in-c-net-with-examples/ – 2013-03-22 06:59:38

+0

DataSet是一种过时的方法。看看实体框架和/或其他OR/M像NHibernate。 – 2013-03-22 07:00:37

回答

8

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

连接=建立连接,保持连接,当接近被称为密切关联。

欲了解更多信息,请参阅MSDN

+0

感谢bro.can你请给我一些真实的例子来澄清我 – Suri 2013-03-22 07:01:37

+0

@Suri:发布了一个链接,让我知道如果它明确你的疑问 – TalentTuner 2013-03-22 07:06:11

+0

@Sourabh我已经通过链接。我有一些关于OLEDB和ODBC的混淆。是这些吗?我没有从链接中获得它,也没有给出图形表示。 – Suri 2013-03-22 11:35:46

1

链接认为数据集作为内存数据库,它包含数据表以及包含表中的数据(全部或基于选择查询数据的子集),甚至维护表之间的关系。在DataSet上可以执行更新/删除操作,它将通过DataAdapter对象同步到数据库。所以要显示的数据不需要连接到数据库所有的时间作为DataReader,它需要连接到数据库,只要你想显示数据。

+0

为什么在数据库连接到数据库的情况下始终需要 – Suri 2013-03-22 07:05:25

+0

因为当您正在读取记录时reader.Read(),它直接从数据库读取数据,所以需要连接。 – Adeel 2013-03-22 07:09:45

+0

@ Adee你确定。我认为在执行ExecuteReader()之后,数据被缓存到窗口中的本地内存中,当reader.Read()被执行时,它从这里读取,而不是直接从数据库读取。 – Suri 2013-03-23 11:39:05

0

在传统的ADO中,RecordSet对象可以在连接模式和断开模式下工作。在Ado.Net有可用的,以满足每个这些情况的两个独立的类型 - IDataReaderDataSet

连接模式:保持连接到下面的数据源,而在结果集仅向前流遍历。

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

MSDN article进一步比较这两个对象,并讨论他们各自的优点比我能在这里解释好很多。

+0

记录集?这是.NET。 Recordset是一个典型的ADODB概念:P – 2013-03-22 07:07:51

+0

我并不是指实际类型......也许我应该改写这个 – NoviceProgrammer 2013-03-22 07:10:32

+0

是的,也许DataSet? ;) – 2013-03-22 07:11:23

1

ADO.net体系结构中,连接必须保持打开状态才能检索和访问数据库中的数据,称为连接体系结构。连架构是建立在这些类型 - connectioncommanddatareader

的ADO.net架构,在这方面会一直保留,直到只从数据库中检索到的数据,后来当连接到数据库甚至可以访问关闭被称为断开连接的架构。 ADO.net的断开连接体系结构建立在这些类型上 - connection,dataadapter,commandbuilderdatasetdataview

-2

连接架构:在连接模型中,我们可以将任何应用程序连接到数据库并保持连接到数据库系统,即使它没有使用任何数据库操作。对于这种架构,我们使用Connection,CommandDataReader

断开连接的体系结构:在断开连接的模型中,我们将任何应用程序连接到数据库,直到我们调用close方法。在这个架构中,我们使用DataSetDataAdapter

0

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

断开连接架构:立即获取整个数据,现在执行任何您想要执行的操作。 Isert/Update/Delete。没有必要的连接总是OPEN.Uses数据集,数据适配器