IDataAdapter.Fill 方法

DataSet 中添加或刷新行以匹配使用 DataSet 名称的数据源中的行,并创建一个名为“Table”的 DataTable

**命名空间:**System.Data
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Function Fill ( _
    dataSet As DataSet _
) As Integer
用法
Dim instance As IDataAdapter
Dim dataSet As DataSet
Dim returnValue As Integer

returnValue = instance.Fill(dataSet)
int Fill (
    DataSet dataSet
)
int Fill (
    DataSet^ dataSet
)
int Fill (
    DataSet dataSet
)
function Fill (
    dataSet : DataSet
) : int

参数

  • dataSet
    要用记录和架构(如果必要)填充的 DataSet

返回值

已在 DataSet 中成功添加或刷新的行数。这不包括受不返回行的语句影响的行。

备注

Fill 使用关联的 SelectCommand 属性所指定的 SELECT 语句从数据源中检索行。与 SELECT 语句关联的连接对象必须有效,但不需要将其打开。如果调用 Fill 之前连接已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。

然后,Fill 操作将行添加到 DataSet 中的目标 DataTable 对象,如果 DataTable 对象不存在,则创建这些对象。当创建 DataTable 对象时,Fill 操作通常只创建列名元数据。但是,如果 MissingSchemaAction 属性设置为 AddWithKey,则还会创建适当的主键和约束。

如果 SelectCommand 返回 OUTER JOIN 的结果,则 DataAdapter 不为生成的 DataTable 设置 PrimaryKey 值。必须显式定义主键,确保正确地解析重复行。有关更多信息,请参见 为表定义主键

如果 IDataAdapter 在填充 DataTable 时遇到重复列,它将以“columnname1”、“columnname2”、“columnname3”这样依次排序的模式命名后面的列。如果传入数据包含未命名的列,它们将按“Column1”、“Column2”的模式放在 DataSet 中。向 DataSet 添加多个结果集时,每个结果集都放在一个单独的表中。将整数值追加到指定的表名从而对其他结果集进行命名(例如“Table”、“Table1”、“Table2”等)。在应用程序中使用列名和表名时应小心,一定不要与这些命名模式发生冲突。

当用于填充 DataSet 的 SELECT 语句(例如批处理 SQL 语句)返回多项结果时,如果其中一项结果包含错误,则将跳过所有后面的结果并且不将其添加到 DataSet 中。

您可以在同一个 DataTable 上多次使用 Fill 方法。如果主键存在,则传入行会与已有的匹配行合并。如果主键不存在,则传入行会追加到 DataTable 中。

提示

当处理返回多项结果的批处理 SQL 语句时,.NET Framework 数据提供程序的 FillFillSchema 的实现只在架构信息中检索第一项结果。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

IDataAdapter 接口
IDataAdapter 成员
System.Data 命名空间
FillSchema