【问题标题】:What is exactly meaning of disconnected and connected approach in ADO.NETADO.NET中断开连接和连接方法的确切含义是什么
【发布时间】:2013-03-11 23:08:01
【问题描述】:

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

DataReader 是“连接”的方法,而数据集是“断开的” 接近

从这句话我得出的结论是,在数据阅读器中我们需要建立与数据库的连接,而在数据集中我们不需要建立与数据库的连接。

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

请任何人都可以通过示例告诉我确切的含义。

【问题讨论】:

标签: c# asp.net ado.net


【解决方案1】:

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

Connected = 建立连接,保持连接活跃,关闭连接时调用关闭。

更多信息,请查看MSDN上的链接

【讨论】:

  • 谢谢老哥,能不能举个真实的例子来说明一下
  • @Sourabh 我浏览了链接。我对 OLEDB 和 ODBC 有一些困惑。这些是什么?我没有从链接中得到它,也没有给出图形表示。
  • @Sourabh 在 ADO .Net 中,数据存储在客户端或仅将 html 呈现给客户端
【解决方案2】:

ADO.net 架构,在这种架构中,连接必须保持打开直到最后才能从数据库中检索和访问数据,称为连接架构。连接架构建立在这些类型之上 - connectioncommanddatareader

ADO.net架构中,只有在从数据库中检索到数据之前,连接才会保持打开状态,之后即使与数据库的连接关闭也可以访问,称为断开连接架构。 ADO.net 的断开式架构建立在这些类型之上 - connectiondataadaptercommandbuilderdatasetdataview

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 为什么在Datareader的情况下一直需要连接数据库
    • 因为当您阅读记录时,例如reader.Read(),它直接从数据库中读取,所以需要连接。
    • @Adee 你确定。我认为在执行 ExecuteReader() 后,数据会缓存到 Windows 中的本地内存中,当执行 reader.Read() 时,它会从这里读取,而不是直接从数据库中读取。
    【解决方案4】:

    在经典 ADO 中,RecordSet 对象可以在连接和断开模式下工作。在 Ado.Net 中,有两种不同的类型可用于满足每种情况 - IDataReaderDataSet

    连接模式:在只进的结果集流中遍历时保持与底层数据源的连接。

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

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

    【讨论】:

    • 唱片集?这是.NET。 Recordset 是一个经典的 ADODB 概念:P
    • 我不是指实际的类型...也许我应该改写这个
    【解决方案5】:

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

    断开连接的架构:一次获取整个数据,然后执行您想要执行的任何操作。插入/更新/删除。无需始终打开连接。使用数据集,数据适配器

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-16
        • 1970-01-01
        • 2021-02-03
        • 1970-01-01
        • 2020-06-22
        • 1970-01-01
        相关资源
        最近更新 更多