如何:在现有 Visual Studio 项目中实现分层更新

更新:2007 年 11 月

在 Visual Studio 2008 中,新的 TableAdapterManager 组件增强了类型化数据集的性能。TableAdapterManager 可将保存多个相关表中的数据所需的代码从在具有多行代码的多个例程减少为单个方法调用:TableAdapterManager.UpdateAll(TypedDataset)。默认情况下,会为项目中添加或创建的所有新数据集启用分层更新。现有数据集(在 Visual Studio 的早期版本中创建的数据集)不包含 TableAdapterManager 组件。因此,默认情况下,在早期版本中创建的数据集的“分层更新”属性设置为“False”。通过将“分层更新”属性设置为“True”并保存数据集,即可生成 TableAdapterManager 组件。有关更多信息,请参见 TableAdapterManager 概述

启用“分层更新”并生成 TableAdapterManager 组件

说明:

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置

在早期版本的类型化数据集中启用分层更新

  1. 在 Visual Studio 2008 中打开包含一个或多个类型化数据集的项目。

    Visual Studio 转换向导随即打开。

  2. 完成“Visual Studio 转换向导”。

  3. 解决方案资源管理器中双击 .xsd 文件,以在数据集设计器中打开该数据集。

  4. 单击“数据集设计器”上的空白区域。

  5. “属性”窗口中找到“分层更新”属性。

  6. 将“分层更新”属性的值设置为“True”。

  7. 在“生成”菜单上单击“生成解决方案”。

配置 TableAdapterManager 并保存数据

将“分层更新”属性设置为“True”并保存数据集可生成支持分层更新的 TableAdapterManager 组件。生成 TableAdapterManager 组件后,更新现有代码,以实例化新的 TableAdapterManager 并调用 TableAdapterManager.UpdateAll() 方法,而不调用单个 TableAdapter.Update() 方法。如果现有的 TableAdapter 代码位于类库(或没有用户界面的任何文件)中,则必须以编程方式实例化新的 TableAdapterManager。如果现有的 TableAdapter 代码位于窗体上,则可以将 TableAdapterManager 组件从“工具箱”拖动到窗体上,从而来实例化新的 TableAdapterManager。

TableAdapterManager 是强类型化组件,这意味着其生成时的属性会引用它们所管理的各个 TableAdapter。在实例化 TableAdapterManager 后,设置每个 TableAdapter 实例的各个 TableAdapter 属性,如以下过程所示。

向现有的无用户界面的项目添加 TableAdapterManager

  1. 找到调用 TableAdapter.Update 方法的代码(例如,CustomersTableAdapter.Update(NorthwindDataSet.Customers))。

  2. 用下面的代码替换调用各个 TableAdapter.Update 方法的代码:

    Dim adapterManager as new TableAdapterManager
    adapterManager.TableName1TableAdapter = new _
    TableName1TableAdapter
    adapterManager.TableName2TableAdapter = new _
    TableName2TableAdapter
    
    adapterManager.UpdateAll(Me.DataSetName)
    
    TableAdapterManager adapterManager = 
    new TableAdapterManager();
    
    adapterManager.TableName1TableAdapter = 
    new TableName1TableAdapter();
    adapterManager.TableName2TableAdapter = 
    new TableName2TableAdapter();
    
    adapterManager.UpdateAll(this.DataSetName);
    

向现有的具有用户界面的项目添加 TableAdapterManager

  1. 在“设计”视图中打开窗体。

  2. 将 TableAdapterManager 组件从“工具箱”拖到窗体上。

  3. 找到调用 TableAdapter.Update 方法的代码(例如,CustomersTableAdapter.Update(NorthwindDataSet.Customers))。

  4. 用下面的代码替换调用各个 TableAdapter.Update 方法的代码:

    Me.TableAdapterManager.TableName1TableAdapter = _
    new DatasetNameTableAdapters.TableName1TableAdapter
    Me.TableAdapterManager.TableName2TableAdapter = _
    new DatasetNameTableAdapters.TableName2TableAdapter
    
    Me.TableAdapterManager.UpdateAll(Me.DataSetName)
    
    TableAdapterManager.TableName1TableAdapter = new 
    TableName1TableAdapter();
    TableAdapterManager.TableName2TableAdapter = new 
    TableName2TableAdapter();
    
    TableAdapterManager.UpdateAll(this.DataSetName);
    

请参见

概念

数据中的新增功能

分层更新概述

TableAdapterManager 概述