如何:使用数据填充数据集

短语“用数据填充数据集”指的是将数据加载到组成数据集的各个 DataTable 对象中。 可以通过执行 TableAdapter 查询或数据适配器(例如 SqlDataAdapter)命令来填充数据表。

使用 TableAdapter 还是使用数据适配器取决于数据集的创建方式。 如果使用 Visual Studio 中的设计工具(例如数据源配置向导),则数据集将包含 TableAdapter。 有关 TableAdapter 的更多信息,请参见 TableAdapter 概述。 如果以编程方式创建数据集,则通常需要创建数据适配器以将数据加载到数据表中。

提示

将项从 “数据源”窗口 拖动到窗体上时,用数据填充数据表的代码会自动添加到 Form_Load 事件处理程序。 在代码编辑器中打开窗体以查看用于填充指定表的具体语法。 如果窗体加载时不希望填充表,则可将此代码移动到其他的方法中,或将其完全移除。

使用 TableAdapter 填充数据集

调用 TableAdapter 上的某个查询将数据加载到数据集中的数据表。 将要填充的 DataTable 传递给 TableAdapter 查询。 如果查询带有参数,则还要将这些参数传递到该方法。 如果数据集包含多个表,则应为每个表提供不同的 TableAdapter,而且必须分别填充每个表。

提示

默认情况下,每次执行 TableAdapter 查询时,在将查询结果加载到表中之前首先会清除表中的数据。 可以通过将 TableAdapter 的 ClearBeforeFill 属性设置为 false 来保留表中的现有数据并追加查询结果。

使用 TableAdapter 利用数据填充数据集

  1. 在**“代码编辑器”**中打开窗体或组件。

  2. 将代码添加到应用程序中需要在此用数据加载数据表的任何位置。 如果查询不包含参数,则传入要填充的 DataTable。 代码应类似于如下所示:

    Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet.Customers)
    
    this.customersTableAdapter.Fill(this.northwindDataSet.Customers);
    
  3. 如果查询包含参数,则传入要填充的 DataTable 及查询所需的参数。 根据查询中的实际参数,代码将类似于以下示例:

    CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
    CustomersTableAdapter.FillByCityAndState(NorthwindDataSet.Customers, "Seattle", "WA")
    
    customersTableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");
    customersTableAdapter.FillByCityAndState(northwindDataSet.Customers, "Seattle", "WA");
    

使用 DataAdapter 填充数据集

调用数据适配器的 Fill 方法。 这会导致适配器执行在其 SelectCommand 属性中所引用的 SQL 语句或存储过程,然后将结果放入数据集中的表中。 如果数据集包含多个表,则应该为每个表提供不同的数据适配器,而且必须单独填充每个表。

使用 DataAdapter 利用数据填充数据集

  • 调用 DataAdapterFill 方法,并传入将要在其中加载数据的 DataSetDataTable。 例如:

    sqlDataAdapter1.Fill(dataset1.Tables("Customers"))
    
    sqlDataAdapter1.Fill(dataset1.Tables["Customers"]);
    

    通常应提供将要在其中加载数据的 DataTable 的名称。 如果传入的是 DataSet 的名称,而不是某个具体数据表的名称,则名为 Table1 的 DataTable 将被添加到数据集并被加载来自数据库的结果(而不是在数据集中的现有 DataTable 中加载数据)。 有关更多信息,请参见从 DataAdapter 填充数据集 (ADO.NET)

请参见

概念

用数据填充数据集

在 Visual Studio 中将控件绑定到数据

其他资源

将数据获取到应用程序

准备应用程序以接收数据

在应用程序中编辑数据

验证数据

保存数据