IDataAdapter.FillSchema(DataSet, SchemaType) Metoda

Definicja

DataTable Dodaje do określonego DataSet elementu nazwę "Tabela" i konfiguruje schemat w taki sposób, aby był zgodny z tym w źródle danych na podstawie określonego SchemaTypeelementu .

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

Parametry

dataSet
DataSet

Obiekt DataSet , który ma zostać wypełniony schematem ze źródła danych.

schemaType
SchemaType

SchemaType Jedna z wartości.

Zwraca

DataTable[]

Tablica DataTable obiektów, które zawierają informacje o schemacie zwrócone ze źródła danych.

Uwagi

Metoda FillSchema pobiera schemat ze źródła danych przy użyciu elementu SelectCommand. Obiekt połączenia skojarzony z obiektem SelectCommand musi być prawidłowy, ale nie musi być otwarty. Jeśli połączenie zostanie zamknięte przed FillSchema wywołaniem, zostanie otwarte w celu pobrania danych, a następnie zamknięte. Jeśli połączenie jest otwarte przed FillSchema wywołaniem, pozostaje otwarte.

Operacja FillSchema dodaje obiekt DataTable do lokalizacji docelowej DataSet. Następnie dodaje kolumny do DataColumnCollection elementu DataTable i konfiguruje następujące DataColumn właściwości, jeśli istnieją w źródle danych:

FillSchema Konfiguruje PrimaryKey również właściwości i Constraints zgodnie z następującymi regułami:

  • Jeśli co najmniej jedna kolumna klucza podstawowego SelectCommandjest zwracana przez element , są one używane jako kolumny klucza podstawowego dla elementu DataTable.

  • Jeśli nie są zwracane żadne kolumny klucza podstawowego, ale są to kolumny unikatowe, są używane jako klucz podstawowy, jeśli wszystkie unikatowe kolumny są niepuste. Jeśli którakolwiek z kolumn ma wartość null, element UniqueConstraint zostanie dodany do ConstraintCollectionobiektu , ale właściwość nie jest ustawiona PrimaryKey .

  • Jeśli zostaną zwrócone zarówno kolumny klucza podstawowego, jak i kolumny unikatowe, kolumny klucza podstawowego są używane jako kolumny klucza podstawowego dla elementu DataTable.

Należy pamiętać, że klucze podstawowe i unikatowe ograniczenia są dodawane zgodnie ConstraintCollection z poprzednimi regułami, ale nie są dodawane inne typy ograniczeń.

Jeśli unikatowy indeks grupowany jest zdefiniowany w kolumnie lub kolumnach w tabeli SQL Server, a ograniczenie klucza podstawowego jest definiowane w oddzielnym zestawie kolumn, zwracane będą nazwy kolumn w indeksie klastrowanym. Aby zwrócić nazwę lub nazwy kolumn klucza podstawowego, użyj wskazówki dotyczącej zapytania z instrukcją SELECT, która określa nazwę indeksu klucza podstawowego. Aby uzyskać więcej informacji na temat określania wskazówek dotyczących zapytań, zobacz Wskazówki (Transact-SQL) — zapytanie.

Jeśli napotka IDataAdapter zduplikowane kolumny podczas wypełniania DataTableelementu , generuje nazwy kolejnych kolumn przy użyciu wzorca "nazwa_kolumny1", "nazwa_kolumny2", "nazwa_kolumny3" itd. Jeśli dane przychodzące zawierają nienazwane kolumny, są one umieszczane w DataSet zależności od wzorca "Column1", "Column2" itd. Po dodaniu wielu zestawów wyników do DataSetzestawu wyników każdy zestaw wyników jest umieszczany w oddzielnej tabeli. Dodatkowe zestawy wyników są nazwane przez dołączenie wartości całkowitych do określonej nazwy tabeli (na przykład "Tabela", "Tabela1", "Tabela2" itd.). Aplikacje powinny zachować ostrożność podczas używania nazw kolumn i tabel, aby upewnić się, że nie występują konflikty z tymi wzorcami nazewnictwa.

FillSchema Metoda nie zwraca żadnych wierszy. Fill Użyj metody , aby dodać wiersze do klasy DataTable.

Dotyczy

Zobacz też