IDataAdapter.FillSchema(DataSet, SchemaType) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
DataTable Dodaje nazwę "Tabela" do określonego DataSet 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
- schemaType
- SchemaType
SchemaType Jedna z wartości.
Zwraca
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:
AutoIncrement. Należy ustawić AutoIncrementStep i AutoIncrementSeed oddzielnie.
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.