【问题标题】:ADO.NET ConnectionsADO.NET 连接
【发布时间】:2014-06-13 14:11:14
【问题描述】:

有人能解释一下 ADO.NET 中面向连接的访问​​和无连接访问之间的一些主要区别吗?它们适用于哪些应用程序?谢谢

【问题讨论】:

  • “无连接”到底是什么意思?
  • 这不是“无连接访问”。您正在采取的是“断开连接状态”。换句话说,您从数据库中获取数据并使用DataTableDataSetDataView 等对象来处理数据,这些数据现在存储在客户端(在这种情况下,客户端是数据库的客户端)。稍后,如果需要,您可以将数据与 DB 同步。 .NET 中引入的断开连接状态也引入了数据并发问题。您所说的“面向连接”访问是通过实时连接使用数据进行编程。但是对于 ado.net,它不会发生那么多。仅在事务或数据读取期间

标签: .net ado.net connection


【解决方案1】:

面向连接的模型利用平台特定的“数据提供者”,例如 OLEDB(命名空间:System.Data.Oledb)、Microsoft SQL Server(命名空间:System.Data.SqlClient)、ODBC(命名空间:System.Data.Odbc)等。

当您使用这些数据提供者时,您的应用程序程序集和数据库使用这些数据提供者紧密耦合(这意味着每次都连接)。

而在断开连接的模型中,我们将您定义为 DataSet、DataAdapter 等。在这里您可以将 Dataset 理解为缓冲区,而将 DataAdaptor 理解为连接数据库和此数据集的桥梁。

一旦创建DataAdapter(ad)DataSet(ds) 的对象并写入ad.Fill(ds),此数据集就会从数据库中获取其缓冲区(所有表等),现在与数据库的连接会自动中断。所有未来的查询都在这个缓冲区(数据集)上执行,然后自动更新你的数据库。总之,您的数据库只使用了两次:

  1. 当数据集得到它的缓冲区时;
  2. 在更新数据库时,一直处于“断开连接”状态。

【讨论】:

  • 如果需要,我有自己的视频,我在其中进行了更详细的解释。请将您的请求发送到@kaushalsanadhya@hotmail.com
【解决方案2】:

面向连接意味着:连接存在会抛出你的进程。 示例:在 Ado.Net 中使用 DataReader,您可以将数据作为面向连接的数据库连接类型。 连接少意味着:您的连接不可用,丢弃您的整个过程。 示例:在 Ado.Net 中使用 DataAdapter,您可以将数据作为无连接数据库连接类型获取。

【讨论】:

    【解决方案3】:

    在客户端-服务器模型中,每个客户端在启动时创建自己的数据库连接(con.open)并在程序关闭时释放(con.close)它。虽然连接只使用了一小部分时间,但客户端将其保持打开状态。 在此过程中使用数据读取器。 数据在 Connected Data Access 中为只读 示例 - 电话通话 - 我们接通通话并断开通话 注意 - 服务器必须为每个客户端维护一个单独的实时连接。

    对于断开连接的数据访问(无连接)数据适配器在内部管理连接以从数据库中获取数据,一旦它自动关闭。所以我们不会单独(手动)编写任何 con.open 或 con.close 步骤。 数据适配器用于此过程。 示例 - 电子邮件 可以对数据进行插入、更新等操作。

    【讨论】:

      【解决方案4】:

      面向连接 只要您使用 ConnectionObject.Open() 打开连接,连接就会一直打开,直到您使用 Close() 手动关闭。 主要使用的组件有:

      1. 连接
      2. 命令
      3. 数据读取器

      无连接 数据适配器用于打开和关闭连接。它确保数据是否到达数据集并自动关闭连接。您所有的 DML 操作都在数据集中进行。如果您自动执行任何 DML 操作,Data Adapter 会打开连接并将数据更新到数据库中,然后稍后关闭连接。 主要用到的组件有:

      1. 连接
      2. 数据适配器
      3. 数据集

      【讨论】:

        【解决方案5】:

        ADO.NET是.NET Framework中提供的数据库操作框架。有2组对象

        1)面向连接 - 建立数据库连接的对象,如适配器、连接等

        2) 无连接 - 那些离线存储数据的对象,如数据表、数据列等。它们非常强大,不仅可以存储数据,还可以创建关系、查询办公室等

        当你进行正常的DB操作时,我们使用连接对象和无连接对象来存储结果集。

        我建议您阅读文档以了解更多详细信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多