IDataAdapter.FillSchema(DataSet, SchemaType) 方法

定义

将名为“Table”的 DataTable 添加到指定的 DataSet,并根据指定的 SchemaType 配置架构以匹配数据源中的架构。

public:
 cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType);
public System.Data.DataTable[] FillSchema (System.Data.DataSet dataSet, System.Data.SchemaType schemaType);
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType -> System.Data.DataTable[]
Public Function FillSchema (dataSet As DataSet, schemaType As SchemaType) As DataTable()

参数

dataSet
DataSet

要用数据源中的架构填充的 DataSet

schemaType
SchemaType

SchemaType 值之一。

返回

DataTable[]

DataTable 对象的数组,这些对象包含从数据源返回的架构信息。

注解

该方法 FillSchema 使用 . SelectCommand. 从数据源检索架构。 与连接 SelectCommand 对象关联的连接对象必须有效,但它不需要打开。 如果在调用之前 FillSchema 关闭连接,则会打开它以检索数据,然后关闭。 如果连接在调用之前 FillSchema 处于打开状态,它将保持打开状态。

操作 FillSchema 将添加到 DataTable 目标 DataSet。 然后,它将列添加到数据源DataTableDataColumnCollection,并配置以下DataColumn属性(如果它们存在于数据源中):

FillSchema 还根据以下规则配置 PrimaryKeyConstraints 属性:

  • 如果一个或多个主键列由该 SelectCommand列返回,则它们用作该 DataTable列的主键列。

  • 如果未返回主键列,但唯一列是,则唯一列用作主键(如果所有唯一列不可为 null)。 如果任一列可为 null,则会向其中ConstraintCollection添加一个UniqueConstraint列,但PrimaryKey未设置该属性。

  • 如果返回主键列和唯一列,则主键列用作主 DataTable键列。

请注意,主键和唯一约束将添加到上述规则中 ConstraintCollection ,但不会添加其他约束类型。

如果在SQL Server表中的列或列上定义了唯一聚集索引,并且主键约束在一组单独的列上定义,则将返回聚集索引中的列的名称。 若要返回主键列的名称或名称,请使用具有 SELECT 语句的查询提示,该语句指定主键索引的名称。 有关如何指定查询提示的详细信息,请参阅 Transact-SQL) - 查询 (提示

IDataAdapter如果在填充 a DataTable时遇到重复列,则使用模式“columnname1”、“columnname2”、“columnname3”等为连续列生成名称。 如果传入数据包含未命名的列,则根据模式“Column1”、“Column2”等将其放入 DataSet 其中。 将多个结果集添加到其中 DataSet时,每个结果集将放入单独的表中。 通过将整型值追加到指定的表名中来命名其他结果集, (例如“Table”、“Table1”、“Table2”等) 。 使用列名和表名时,应用程序应谨慎使用,以确保不会发生与这些命名模式冲突。

FillSchema 不返回任何行。 使用该方法Fill将行添加到 .DataTable

适用于

另请参阅