从 Visual Studio 2008 开始,TableAdapterManager 组件增强了类型化数据集。 TableAdapterManager 可将保存多个相关表中的数据所需的代码从在具有多行代码的多个例程减少为单个方法调用:TableAdapterManager.UpdateAll(TypedDataset)。 默认情况下,所有在项目中添加或创建的新数据集的分层更新都处于启用状态。 现有数据集(在 Visual Studio 2008 之前的 Visual Studio 早期版本中创建的数据集)不包含 TableAdapterManager 组件。 因此,默认情况下,在早期版本中创建的数据集的**“分层更新”属性设置为“False”。 通过将“分层更新”属性设置为“True”**并保存数据集,即可生成 TableAdapterManager 组件。 有关详细信息,请参阅TableAdapterManager 概述。
启用“分层更新”并生成 TableAdapterManager 组件
备注
以下说明中的某些 Visual Studio 用户界面元素在你计算机上的名称或显示位置可能有所不同。这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。有关详细信息,请参阅 在 Visual Studio 中自定义开发设置。
在早期版本的类型化数据集中启用分层更新
在 Visual Studio 中打开包含一个或多个类型化数据集的项目。
完成**“Visual Studio 转换向导”**。
通过在解决方案资源管理器中双击 .xsd 文件,在创建和编辑类型化数据集中打开数据集。
单击“数据集设计器”上的空白区域。
在“属性”窗口中找到**“分层更新”**属性。
将**“分层更新”属性的值设置为“True”**。
在**“生成”菜单上,单击“生成解决方案”**。
配置 TableAdapterManager 并保存数据
将**“分层更新”属性设置为“True”并保存数据集可生成支持分层更新的 TableAdapterManager 组件。 生成 TableAdapterManager 组件后,更新现有代码,以实例化新的 TableAdapterManager 并调用 TableAdapterManager.UpdateAll() 方法,而不调用单个 TableAdapter.Update() 方法。 如果现有的 TableAdapter 代码位于类库(或没有用户界面的任何文件)中,则必须以编程方式实例化新的 TableAdapterManager。 如果现有的 TableAdapter 代码位于窗体上,则可以将 TableAdapterManager 组件从“工具箱”**拖动到窗体上,从而来实例化新的 TableAdapterManager。
TableAdapterManager 是强类型化组件,这意味着其生成时的属性会引用它们所管理的各个 TableAdapter。 在实例化 TableAdapterManager 后,设置每个 TableAdapter 实例的各个 TableAdapter 属性,如以下过程所示。
向现有的无用户界面的项目添加 TableAdapterManager
找到调用 TableAdapter.Update 方法的代码(例如,CustomersTableAdapter.Update(NorthwindDataSet.Customers))。
用下面的代码替换调用各个 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
在“设计”视图中打开窗体。
将 TableAdapterManager 组件从**“工具箱”**拖到窗体上。
找到调用 TableAdapter.Update 方法的代码(例如,CustomersTableAdapter.Update(NorthwindDataSet.Customers))。
用下面的代码替换调用各个 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);