Freigeben über


IDataAdapter.FillSchema(DataSet, SchemaType) Methode

Definition

Fügt eine DataTable namens „Tabelle“ zum angegebenen DataSet hinzu und konfiguriert das Schema auf der Grundlage des angegebenen SchemaType so, dass es mit dem Schema in der Datenquelle übereinstimmt.

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()

Parameter

dataSet
DataSet

Die DataSet, die mit dem Schema aus der Datenquelle gefüllt werden soll.

schemaType
SchemaType

Einer der SchemaType-Werte.

Gibt zurück

Ein Array von DataTable-Objekten, die aus der Datenquelle zurückgegebene Schemainformationen enthalten.

Hinweise

Die FillSchema -Methode ruft das Schema mithilfe von aus der SelectCommandDatenquelle ab. Das verbindungsobjekt, das dem SelectCommand zugeordnet ist, muss gültig sein, aber es muss nicht geöffnet sein. Wenn die Verbindung geschlossen wird, bevor FillSchema aufgerufen wird, wird sie geöffnet, um Daten abzurufen, und dann geschlossen. Wenn die Verbindung geöffnet ist, bevor FillSchema aufgerufen wird, bleibt sie geöffnet.

Ein FillSchema Vorgang fügt dem Ziel DataSeteine DataTable hinzu. Anschließend werden Spalten zu der DataColumnCollection hinzugefügt DataTable und die folgenden DataColumn Eigenschaften konfiguriert, sofern sie in der Datenquelle vorhanden sind:

FillSchema konfiguriert außerdem die PrimaryKey Eigenschaften und Constraints gemäß den folgenden Regeln:

  • Wenn eine oder mehrere Primärschlüsselspalten von SelectCommandzurückgegeben werden, werden sie als Primärschlüsselspalten für verwendet DataTable.

  • Wenn keine Primärschlüsselspalten zurückgegeben werden, aber eindeutige Spalten, werden die eindeutigen Spalten als Primärschlüssel verwendet, wenn alle eindeutigen Spalten nicht NULL-wertefähig sind. Wenn eine der Spalten NULL-Werte zulassen kann, wird der ConstraintCollectionhinzugefügtUniqueConstraint, aber die PrimaryKey -Eigenschaft ist nicht festgelegt.

  • Wenn sowohl Primärschlüsselspalten als auch eindeutige Spalten zurückgegeben werden, werden die Primärschlüsselspalten als Primärschlüsselspalten für verwendet DataTable.

Beachten Sie, dass Primärschlüssel und eindeutige Einschränkungen gemäß den vorherigen Regeln hinzugefügt ConstraintCollection werden, andere Einschränkungstypen jedoch nicht hinzugefügt werden.

Wenn ein eindeutiger gruppierter Index für eine Spalte oder Spalten in einer SQL Server Tabelle definiert ist und die Primärschlüsseleinschränkung für einen separaten Satz von Spalten definiert ist, werden die Namen der Spalten im gruppierten Index zurückgegeben. Um den Namen der Primärschlüsselspalten zurückzugeben, verwenden Sie einen Abfragehinweis mit der SELECT-Anweisung, die den Namen des Primärschlüsselindexes angibt. Weitere Informationen zum Angeben von Abfragehinweisen finden Sie unter Hinweise (Transact-SQL) – Abfrage.

Wenn doppelte IDataAdapter Spalten beim Auffüllen eines DataTableauftreten, generiert es Namen für die aufeinanderfolgenden Spalten, wobei das Muster "Spaltenname1", "Spaltenname2", "Spaltenname3" usw. verwendet wird. Wenn die eingehenden Daten unbenannte Spalten enthalten, werden sie gemäß dem Muster "Column1", "Column2" usw. eingefügt DataSet . Wenn dem mehrere Resultsets hinzugefügt DataSetwerden, wird jedes Resultset in eine separate Tabelle eingefügt. Zusätzliche Resultsets werden benannt, indem integrale Werte an den angegebenen Tabellennamen angefügt werden (z. B. "Table", "Table1", "Table2" usw.). Anwendungen sollten bei der Verwendung von Spalten- und Tabellennamen Vorsicht walten lassen, um sicherzustellen, dass konflikte mit diesen Benennungsmustern nicht auftreten.

FillSchema gibt keine Zeilen zurück. Verwenden Sie die Fill -Methode, um Zeilen zu einer DataTablehinzuzufügen.

Gilt für:

Weitere Informationen