DataAdapter.FillSchema Methode

Definition

Fügt dem angegebenen DataTable eine DataSet hinzu.Adds a DataTable to the specified DataSet.

Überlädt

FillSchema(DataSet, SchemaType, String, IDataReader)

Fügt dem angegebenen DataTable eine DataSet hinzu.Adds a DataTable to the specified DataSet.

FillSchema(DataSet, SchemaType)

Fügt dem angegebenen DataTable eine DataSet mit dem Namen "Table" hinzu und konfiguriert das Schema anhand des angegebenen SchemaType so, dass es dem Schema in der Datenquelle entspricht.Adds a DataTable to the specified DataSet and configures the schema to match that in the data source based on the specified SchemaType.

FillSchema(DataTable, SchemaType, IDataReader)

Fügt dem angegebenen DataTable eine DataSet hinzu.Adds a DataTable to the specified DataSet.

FillSchema(DataSet, SchemaType, String, IDataReader)

Fügt dem angegebenen DataTable eine DataSet hinzu.Adds a DataTable to the specified 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[]

Parameter

dataSet
DataSet

Die DataTable, die aus dem IDataReader gefüllt werden soll.The DataTable to be filled from the IDataReader.

schemaType
SchemaType

Einer der SchemaType-Werte.One of the SchemaType values.

srcTable
String

Der Name der Quelltabelle, die für die Tabellenzuordnung verwendet werden soll.The name of the source table to use for table mapping.

dataReader
IDataReader

Der IDataReader, der beim Auffüllen der DataTable als Datenquelle verwendet werden soll.The IDataReader to be used as the data source when filling the DataTable.

Gibt zurück

Ein Verweis auf eine Auflistung von DataTable-Objekten, die dem DataSet hinzugefügt wurden.A reference to a collection of DataTable objects that were added to the DataSet.

Siehe auch

FillSchema(DataSet, SchemaType)

Fügt dem angegebenen DataTable eine DataSet mit dem Namen "Table" hinzu und konfiguriert das Schema anhand des angegebenen SchemaType so, dass es dem Schema in der Datenquelle entspricht.Adds a DataTable to the specified DataSet and configures the schema to match that in the data source based on the specified SchemaType.

public:
 abstract cli::array <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[]

Parameter

dataSet
DataSet

Die mit dem Schema aus der Datenquelle zu füllende DataSet.The DataSet to be filled with the schema from the data source.

schemaType
SchemaType

Einer der SchemaType-Werte.One of the SchemaType values.

Gibt zurück

Ein DataTable-Objekt, das aus der Datenquelle zurückgegebene Schemainformationen enthält.A DataTable object that contains schema information returned from the data source.

Implementiert

Hinweise

Die FillSchema-Methode ruft das Schema mithilfe der SelectCommandaus der Datenquelle ab.The FillSchema method retrieves the schema from the data source using the SelectCommand. Das Verbindungs Objekt, das dem SelectCommand zugeordnet ist, muss gültig sein, aber es muss nicht geöffnet sein.The connection object associated with the SelectCommand must be valid, but it does not need to be open. Wenn die Verbindung geschlossen wird, bevor FillSchema aufgerufen wird, wird Sie geöffnet, um Daten abzurufen und dann geschlossen zu werden.If the connection is closed before FillSchema is called, it is opened to retrieve data and then closed. Wenn die Verbindung geöffnet ist, bevor FillSchema aufgerufen wird, bleibt Sie geöffnet.If the connection is open before FillSchema is called, it remains open.

Ein FillSchema Vorgang fügt dem Ziel DataSeteine DataTable hinzu.A FillSchema operation adds a DataTable to the destination DataSet. Anschließend werden dem DataColumnCollection der DataTableSpalten hinzugefügt, und die folgenden DataColumn Eigenschaften werden konfiguriert, wenn Sie in der Datenquelle vorhanden sind:It then adds columns to the DataColumnCollection of the DataTable, and configures the following DataColumn properties if they exist at the data source:

FillSchema konfiguriert auch die Eigenschaften PrimaryKey und Constraints gemäß den folgenden Regeln:FillSchema also configures the PrimaryKey and Constraints properties according to the following rules:

  • Wenn eine oder mehrere Primärschlüssel Spalten von der SelectCommandzurückgegeben werden, werden Sie als Primärschlüssel Spalten für die DataTableverwendet.If one or more primary key columns are returned by the SelectCommand, they are used as the primary key columns for the DataTable.

  • Wenn keine Primärschlüssel Spalten zurückgegeben werden, aber eindeutige Spalten sind, werden die eindeutigen Spalten als Primärschlüssel verwendet, wenn, und nur wenn, wenn alle eindeutigen Spalten keine NULL-Werte zulassen.If no primary key columns are returned but unique columns are, the unique columns are used as the primary key if, and only if, all the unique columns are nonnullable. Wenn eine der Spalten NULL-Werte zulässt, wird der ConstraintCollectionein UniqueConstraint hinzugefügt, die PrimaryKey-Eigenschaft ist jedoch nicht festgelegt.If any of the columns are nullable, a UniqueConstraint is added to the ConstraintCollection, but the PrimaryKey property is not set.

  • Wenn sowohl Primärschlüssel Spalten als auch eindeutige Spalten zurückgegeben werden, werden die Primärschlüssel Spalten als Primärschlüssel Spalten für die DataTableverwendet.If both primary key columns and unique columns are returned, the primary key columns are used as the primary key columns for the DataTable.

Hinweis

Der zugrunde liegende Datenspeicher kann Spalten Attribute zulassen, die in einer DataColumnnicht unterstützt werden, was dazu führt, dass einige Spalten Attribute nicht ordnungsgemäß übersetzt werden.The underlying data store may allow column attributes that are not supported in a DataColumn, which causes some column attributes to not translate correctly. Beispielsweise lässt SQL Server eine Identitäts Spalte mit dem Datentyp tinyint zu, während ein DataColumn nur Int16, Int32 und Int64 erlaubt, dass die AutoIncrement-Eigenschaft festgelegt ist.For example, SQL Server allows an identity column with a data type of tinyint whereas a DataColumn only allows Int16, Int32, and Int64 to have the AutoIncrement property set. FillSchema ignoriert Fälle, in denen der DataColumn die Datenquelle nicht genau spiegeln kann und keine Ausnahme auslöst.FillSchema silently ignores cases where the DataColumn cannot accurately mirror the data source and throws no exception.

Beachten Sie, dass der ConstraintCollection Primärschlüssel und UNIQUE-Einschränkungen gemäß den vorangehenden Regeln hinzugefügt werden, andere Einschränkungs Typen jedoch nicht hinzugefügt werden.Note that primary keys and unique constraints are added to the ConstraintCollection according to the preceding rules, but other constraint types are not added.

Wenn ein eindeutiger gruppierter Index für eine Spalte oder Spalten in einer SQL Server Tabelle definiert ist und die PRIMARY KEY-Einschränkung für einen separaten Satz von Spalten definiert ist, werden die Namen der Spalten im gruppierten Index zurückgegeben.If a unique clustered index is defined on a column or columns in a SQL Server table and the primary key constraint is defined on a separate set of columns, then the names of the columns in the clustered index will be returned. Um die Namen oder Namen der Primärschlüssel Spalten zurückzugeben, verwenden Sie einen Abfrage Hinweis mit der SELECT-Anweisung, die den Namen des Primärschlüssel Indexes angibt.To return the name or names of the primary key columns, use a query hint with the SELECT statement that specifies the name of the primary key index. Weitere Informationen zum Angeben von Abfrage hinweisen finden Sie unter Query Hint (Transact-SQL).For more information about specifying query hints, see Query Hint (Transact-SQL).

Wenn DataAdapter beim Auffüllen eines DataTabledoppelte Spalten gefunden werden, werden die Namen für die nachfolgenden Spalten mithilfe des Musters "ColumnName1", "ColumnName2", "ColumnName3" usw. generiert.If the DataAdapter encounters duplicate columns while populating a DataTable, it generates names for the subsequent columns, using the pattern "columnname1", "columnname2", "columnname3", and so on. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie platziert, der DataSet gemäß dem Muster "Column1", "Column2" usw.If the incoming data contains unnamed columns, they are placed in the DataSet according to the pattern "Column1", "Column2", and so on. Wenn der DataSet werden mehrere Resultsets in eine separate Tabelle eingefügt.When multiple result sets are added to the DataSet each result set is placed in a separate table. Zusätzliche Resultsets werden benannt, indem ganzzahlige Werte an den angegebenen Tabellennamen angehängt werden (z. b. "Table", "table1", "table2" usw.).Additional result sets are named by appending integral values to the specified table name (for example, "Table", "Table1", "Table2", and so on). Anwendungen, die Spalten-und Tabellennamen verwenden, sollten sicherstellen, dass keine Konflikte mit diesen Benennungs Mustern auftreten.Applications using column and table names should ensure that conflicts with these naming patterns does not occur.

FillSchema gibt keine Zeilen zurück.FillSchema does not return any rows. Verwenden Sie die Fill-Methode, um einer DataTableZeilen hinzuzufügen.Use the Fill method to add rows to a DataTable.

Hinweis

Bei der Verarbeitung von Batch-SQL-Anweisungen, die mehrere Ergebnisse zurückgeben, werden bei der Implementierung von FillSchema für die .NET Framework Datenanbieter für OLE DB Schema Informationen nur für das erste Ergebnis abgerufen.When handling batch SQL statements that return multiple results, the implementation of FillSchema for the .NET Framework Data Provider for OLE DB retrieves schema information for only the first result. Um Schema Informationen für mehrere Ergebnisse abzurufen, verwenden Sie Fill, wobei die MissingSchemaAction auf AddWithKeyfestgelegt ist.To retrieve schema information for multiple results, use Fill with the MissingSchemaAction set to AddWithKey.

Siehe auch

FillSchema(DataTable, SchemaType, IDataReader)

Fügt dem angegebenen DataTable eine DataSet hinzu.Adds a DataTable to the specified 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);
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

Parameter

dataTable
DataTable

Die DataTable, die aus dem IDataReader gefüllt werden soll.The DataTable to be filled from the IDataReader.

schemaType
SchemaType

Einer der SchemaType-Werte.One of the SchemaType values.

dataReader
IDataReader

Der IDataReader, der beim Auffüllen der DataTable als Datenquelle verwendet werden soll.The IDataReader to be used as the data source when filling the DataTable.

Gibt zurück

Ein DataTable-Objekt, das aus der Datenquelle zurückgegebene Schemainformationen enthält.A DataTable object that contains schema information returned from the data source.

Siehe auch

Gilt für: