SqlDataReader.GetSchemaTable 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.
Zwraca obiekt DataTable , który opisuje metadane kolumny elementu SqlDataReader.
public:
override System::Data::DataTable ^ GetSchemaTable();
public override System.Data.DataTable GetSchemaTable ();
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Overrides Function GetSchemaTable () As DataTable
Zwraca
Element DataTable opisujący metadane kolumny.
Implementuje
Wyjątki
Element SqlDataReader jest zamknięty.
Uwagi
Metoda GetSchemaTable zwraca następujące metadane dotyczące każdej kolumny:
Kolumna DataReader | Opis |
---|---|
Allowdbnull | Ustaw, czy odbiorca może ustawić kolumnę na wartość null, lub jeśli dostawca nie może określić, czy odbiorca może ustawić kolumnę na wartość null. W przeciwnym razie nie ustawiono. Kolumna może zawierać wartości null, nawet jeśli nie można jej ustawić na wartość null. |
Nazwa dziennika bazowego | Nazwa wykazu w magazynie danych, który zawiera kolumnę. Wartość NULL, jeśli nie można określić nazwy katalogu podstawowego. Wartość domyślna tej kolumny to wartość null. |
Nazwa kolumny bazowej | Nazwa kolumny w magazynie danych. Może to być inne niż nazwa kolumny zwrócona w kolumnie Nazwakolumny, jeśli użyto aliasu. Wartość null, jeśli nie można określić nazwy kolumny podstawowej lub jeśli kolumna zestawu wierszy jest pochodna, ale nie identyczna, kolumna w magazynie danych. Wartość domyślna tej kolumny to wartość null. |
BaseSchemaName | Nazwa schematu w magazynie danych, który zawiera kolumnę. Wartość null, jeśli nie można określić nazwy schematu podstawowego. Wartość domyślna tej kolumny to wartość null. |
Nazwa serwera podstawowego | Nazwa wystąpienia usługi Microsoft SQL Server używanego przez program SqlDataReader. |
Nazwa tabeli bazowej | Nazwa tabeli lub widoku w magazynie danych, który zawiera kolumnę. Wartość null, jeśli nie można określić nazwy tabeli podstawowej. Wartość domyślna tej kolumny to wartość null. |
nazwa_kolumny | Nazwa kolumny; może to nie być unikatowe. Jeśli nie można tego określić, zwracana jest wartość null. Ta nazwa zawsze odzwierciedla najnowszą zmianę nazwy kolumny w bieżącym widoku lub tekście polecenia. |
KolumnaOrdinal | Liczba porządkowa oparta na zerach kolumny. Ta kolumna nie może zawierać wartości null. |
Columnsize | Maksymalna możliwa długość wartości w kolumnie. W przypadku kolumn używających typu danych o stałej długości jest to rozmiar typu danych. W przypadku nvarchar(MAX) kolumn , varchar(MAX) i varbinary(MAX) przechowywanych w bazie danych SQL Server maksymalny rozmiar wynosi 2 GB. Jeśli te kolumny są przechowywane i dostępne jako pliki, limit maksymalnego rozmiaru jest nakładany przez system plików. Ta wartość zmienia się podczas używania słowa kluczowego Type System Version w parametrach połączenia. W przypadku nowych typów są one reprezentowane jako typy poziomów w dół. Typy danych MAX zwracają normalne wartości 4k dla nvarchar i 8000 dla varchar . Aby uzyskać więcej informacji, zobacz dokumentację języka Transact-SQL. |
DataTypeName | Zwraca ciąg reprezentujący typ danych określonej kolumny. |
IsAliased | true : Nazwa kolumny jest aliasem.false : Nazwa kolumny nie jest aliasem. |
IsAutoIncrement | true : Kolumna przypisuje wartości do nowych wierszy w stałych przyrostach.false : Kolumna nie przypisuje wartości do nowych wierszy w stałych przyrostach. Wartość domyślna tej kolumny to false . |
IsColumnSet | true : Kolumna jest rozrzedzona kolumną, która jest elementem członkowskim zestawu kolumn. |
Isexpression | true : Kolumna jest wyrażeniem.false : Kolumna nie jest wyrażeniem. |
IsHidden | true : Kolumna jest ukryta.false : kolumna nie jest ukryta. |
IsIdentity | true : Kolumna jest kolumną tożsamości.false : Kolumna nie jest kolumną tożsamości. |
Iskey | true : Kolumna jest jednym z zestawów kolumn w zestawie wierszy, który wzięty ze sobą w unikatowy sposób identyfikuje wiersz. Zestaw kolumn z ustawioną IsKey wartością true musi jednoznacznie identyfikować wiersz w zestawie wierszy. Nie ma potrzeby, aby ten zestaw kolumn był minimalnym zestawem kolumn. Ten zestaw kolumn może być generowany na podstawie klucza podstawowego tabeli podstawowej, unikatowego ograniczenia lub unikatowego indeksu.false : Kolumna nie jest wymagana do unikatowego identyfikowania wiersza. |
IsLong | true : Kolumna zawiera obiekt Binary Long Object (BLOB), który zawiera bardzo długie dane. Definicja bardzo długich danych jest specyficzna dla dostawcy.false : Kolumna nie zawiera obiektu Binary Long Object (BLOB), który zawiera bardzo długie dane. |
IsReadOnly | true : nie można zmodyfikować kolumny.false : Kolumnę można modyfikować. |
IsRowVersion | true : Kolumna zawiera trwały identyfikator wiersza, do którego nie można zapisać, i nie ma znaczącej wartości z wyjątkiem tożsamości wiersza.false : Kolumna nie zawiera trwałego identyfikatora wiersza, do którego nie można zapisać, i nie ma znaczącej wartości z wyjątkiem tożsamości wiersza. |
Isunique | true : Kolumna ma typ timestamp .false : Kolumna nie jest typu timestamp . |
NonVersionedProviderType | Typ kolumny niezależnie od bieżącego Type System Version określonego w parametrach połączenia. Zwrócona wartość pochodzi z SqlDbType wyliczenia. |
NumericPrecision | Jeśli ProviderType jest typem danych liczbowych, jest to maksymalna precyzja kolumny. Precyzja zależy od definicji kolumny. Jeśli ProviderType nie jest to typ danych liczbowych, jest to 255. |
Numericscale | Jeśli ProviderType jest DBTYPE_DECIMAL lub DBTYPE_NUMERIC, liczba cyfr po prawej stronie przecinka dziesiętnego. W przeciwnym razie jest to 255. |
ProviderSpecificDataType | Zwraca typ danych specyficzny dla dostawcy kolumny na podstawie słowa kluczowego Type System Version w parametrach połączenia. |
Typ dostawcy | Wskaźnik typu danych kolumny. Jeśli typ danych kolumny różni się od wiersza do wiersza, musi to być obiekt. Ta kolumna nie może zawierać wartości null. |
UdtAssemblyQualifiedName | Jeśli kolumna jest typem zdefiniowanym przez użytkownika (UDT), jest to kwalifikowana nazwa zestawu UDT zgodnie z AssemblyQualifiedName. Jeśli kolumna nie jest udT, ma wartość null. |
XmlSchemaCollectionDatabase | Nazwa bazy danych, w której znajduje się kolekcja schematów dla tego wystąpienia XML, jeśli wiersz zawiera informacje o kolumnie XML. Ta wartość to null (Nothing w Visual Basic), jeśli kolekcja jest zdefiniowana w bieżącej bazie danych. Wartość jest również równa null, jeśli nie ma kolekcji schematów, w tym przypadku XmlSchemaCollectionName kolumny i XmlSchemaCollectionOwningSchema również mają wartość null. |
Xmlschemacollectionname | Nazwa kolekcji schematów dla tego wystąpienia XML, jeśli wiersz zawiera informacje o kolumnie XML. Ta wartość to null (Nothing w Visual Basic), jeśli nie ma skojarzonej kolekcji schematów. Jeśli wartość ma wartość null, XmlSchemaCollectionDatabase kolumny i XmlSchemaCollectionOwningSchema również mają wartość null. |
XmlSchemaCollectionOwningSchema | Schemat relacyjny, w którym znajduje się kolekcja schematów dla tego wystąpienia XML, jeśli wiersz zawiera informacje o kolumnie XML. Ta wartość to null (Nothing w Visual Basic), jeśli kolekcja jest zdefiniowana w bieżącej bazie danych. Wartość jest również równa null, jeśli nie ma kolekcji schematów, w tym przypadku XmlSchemaCollectionDatabase kolumny i XmlSchemaCollectionName również mają wartość null. |
Uwaga
Aby upewnić się, że kolumny metadanych zwracają poprawne informacje, należy wywołać ExecuteReader parametr z parametrem ustawionym behavior
na KeyInfo
wartość . W przeciwnym razie niektóre kolumny w tabeli schematów mogą zwracać dane domyślne, null lub nieprawidłowe.