DataAdapter.FillSchema 方法

定义

向指定的 DataTable 添加一个 DataSet

重载

FillSchema(DataSet, SchemaType, String, IDataReader)

向指定的 DataTable 添加一个 DataSet

FillSchema(DataSet, SchemaType)

DataTable 添加到指定的 DataSet ,并根据指定的 SchemaType配置架构以匹配数据源中的架构。

FillSchema(DataTable, SchemaType, IDataReader)

向指定的 DataTable 添加一个 DataSet

FillSchema(DataSet, SchemaType, String, IDataReader)

Source:
DataAdapter.cs
Source:
DataAdapter.cs
Source:
DataAdapter.cs

向指定的 DataTable 添加一个 DataSet

protected:
 virtual cli::array <System::Data::DataTable ^> ^ FillSchema(System::Data::DataSet ^ dataSet, System::Data::SchemaType schemaType, System::String ^ srcTable, System::Data::IDataReader ^ dataReader);
protected virtual System.Data.DataTable[] FillSchema (System.Data.DataSet dataSet, System.Data.SchemaType schemaType, string srcTable, System.Data.IDataReader dataReader);
abstract member FillSchema : System.Data.DataSet * System.Data.SchemaType * string * System.Data.IDataReader -> System.Data.DataTable[]
override this.FillSchema : System.Data.DataSet * System.Data.SchemaType * string * System.Data.IDataReader -> System.Data.DataTable[]
Protected Overridable Function FillSchema (dataSet As DataSet, schemaType As SchemaType, srcTable As String, dataReader As IDataReader) As DataTable()

参数

dataSet
DataSet

要从 DataTable 填充的 IDataReader

schemaType
SchemaType

SchemaType 值之一。

srcTable
String

用于表映射的源表的名称。

dataReader
IDataReader

填充 IDataReader 时要用作数据源的 DataTable

返回

一个引用,指向添加到 DataSetDataTable 对象的集合。

另请参阅

适用于

FillSchema(DataSet, SchemaType)

Source:
DataAdapter.cs
Source:
DataAdapter.cs
Source:
DataAdapter.cs

DataTable 添加到指定的 DataSet ,并根据指定的 SchemaType配置架构以匹配数据源中的架构。

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

参数

dataSet
DataSet

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

schemaType
SchemaType

SchemaType 值之一。

返回

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

实现

注解

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

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

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

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

  • 如果未返回任何主键列,但唯一列为 ,则当且仅当所有唯一列都不可取消时,唯一列将用作主键。 如果任一列可为空, UniqueConstraint 则会将 添加到 , ConstraintCollectionPrimaryKey 未设置 属性。

  • 如果同时返回主键列和唯一列,则主键列将用作 的主键列 DataTable

注意

基础数据存储可能允许 不支持的列属性, DataColumn这会导致某些列属性无法正确转换。 例如,SQL Server允许数据类型为 tinyint 的标识列,而 仅DataColumn允许 Int16、Int32 和 Int64 设置 AutoIncrement 属性。 FillSchema 以无提示方式忽略无法准确镜像数据源且不引发异常的情况 DataColumn

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

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

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

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

注意

处理返回多个结果的批处理 SQL 语句时,针对 OLE DB .NET Framework数据提供程序的 实现FillSchema仅检索第一个结果的架构信息。 若要检索多个结果的架构信息,请使用 FillMissingSchemaAction 并将 设置为 AddWithKey

另请参阅

适用于

FillSchema(DataTable, SchemaType, IDataReader)

Source:
DataAdapter.cs
Source:
DataAdapter.cs
Source:
DataAdapter.cs

向指定的 DataTable 添加一个 DataSet

protected:
 virtual System::Data::DataTable ^ FillSchema(System::Data::DataTable ^ dataTable, System::Data::SchemaType schemaType, System::Data::IDataReader ^ dataReader);
protected virtual System.Data.DataTable? FillSchema (System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDataReader dataReader);
protected virtual System.Data.DataTable FillSchema (System.Data.DataTable dataTable, System.Data.SchemaType schemaType, System.Data.IDataReader dataReader);
abstract member FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDataReader -> System.Data.DataTable
override this.FillSchema : System.Data.DataTable * System.Data.SchemaType * System.Data.IDataReader -> System.Data.DataTable
Protected Overridable Function FillSchema (dataTable As DataTable, schemaType As SchemaType, dataReader As IDataReader) As DataTable

参数

dataTable
DataTable

要从 DataTable 填充的 IDataReader

schemaType
SchemaType

SchemaType 值之一。

dataReader
IDataReader

填充 IDataReader 时要用作数据源的 DataTable

返回

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

另请参阅

适用于