离线访问,但是比较消耗资源,如果不需要使用动态帮定可以用dataReader和dataRow来实现该功能!

解决方案 »

  1.   

    DATASET就是内存中的一个数据库,主要对象是表和关联
      

  2.   

    我也说几句:
    ADO.NET DataSet 是数据的一种内存驻留表示形式,无论它包含的数据来自什么数据源,它都会提供一致的关系编程模型。一个 DataSet 表示整个数据集,其中包含对数据进行包含、排序和约束的表以及表间的关系。使用 DataSet 的方法有若干种,这些方法可以单独应用,也可以结合应用。您可以: 1。在 DataSet 中以编程方式创建 DataTables、DataRelations 和 Constraints 并使用数据填充这些表。 
    2。通过 DataAdapter 用现有关系数据源中的数据表填充 DataSet。 
    3。使用 XML 加载和保持 DataSet 内容。(见MSDN)这说明DataSet本身表达了一种数据集的对象,而不管数据的来源。
    它是自解析的数据集,自己能说明自己是什么数据。
    它支持XML,所以能通过WEB SERVER从远程客户端通讯
      

  3.   

    ///////////////////////////////////////
    ADO.NET 组件
    设计 ADO.NET 组件的目的是为了从数据操作中分解出数据访问。完成此任务的是 ADO.NET 的两个核心组件:DataSet 和 .NET 数据提供程序,后者是一组包括 Connection、Command、DataReader 和 DataAdapter 对象在内的组件。ADO.NET DataSet 是 ADO.NET 的断开式结构的核心组件。DataSet 的设计目的很明确:为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关 DataTable 对象中数据的关系信息组成。ADO.NET 结构的另一个核心元素是 .NET 数据提供程序,其组件的设计目的相当明确:为了实现数据操作和对数据的快速、只进、只读访问。Connection 对象提供与数据源的连接。Command 对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader 从数据源中提供高性能的数据流。最后,DataAdapter 提供连接 DataSet 对象和数据源的桥梁。DataAdapter 使用 Command 对象在数据源中执行 SQL 命令,以便将数据加载到 DataSet 中,并使对 DataSet 中数据的更改与数据源保持一致。
    可以为任何数据源编写 .NET 数据提供程序。.NET 框架附带了两个 .NET 数据提供程序:SQL Server .NET 数据提供程序和 OLE DB .NET 数据提供程序。
    //////////////。(见MSDN)///////////////////
    这一段说明了DATASET的设计思路,断开式结构的核心组件/实现独立于任何数据源的数据访问DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关 DataTable 对象中数据的关系信息组成。
    说明了DATASET的组成
      

  4.   

    ///////////////////////////////////////////////////////
    当确定应用程序应使用 DataReader(请参阅使用 DataReader 检索数据)还是应使用 DataSet(请参阅创建和使用 DataSet)时,应考虑应用程序所需的功能类型。DataSet 用于执行以下功能: 1:在层间或从 XML Web services 对数据进行远程处理。 
    2:与数据进行动态交互,例如绑定到 Windows 窗体控件或组合并关联来自多个源的数据。 
    3:在应用程序本地缓存数据。 
    4:提供关系数据的分层 XML 视图并使用 XSL 转换或 XML 路径语言 (XPath) 查询等工具来处理数据。有关更多信息,请参阅 XML 和 DataSet。 
    5:对数据执行大量的处理,而不需要与数据源保持打开的连接,从而将该连接释放给其他客户端使用。 
    如果不需要 DataSet 所提供的功能,则可以使用 DataReader 以只进只读方式返回数据,从而提高应用程序的性能。虽然 DataAdapter 使用 DataReader 来填充 DataSet 的内容(请参阅从 DataAdapter 填充 DataSet),但可以使用 DataReader 来提高性能,因为您将节省 DataSet 所使用的内存,并省去创建 DataSet 并填充其内容所需进行的处理。
    ////////////////////////////////////////////////////////////////////
    这一段,主要说明了DATASET的功能 和缺点(没有DataReader 高效)。