Bagikan melalui


Koleksi skema umum

Berlaku untuk: .NET Framework .NET .NET Standard

Mengunduh ADO.NET

Koleksi skema umum adalah koleksi skema yang diimplementasikan oleh masing-masing penyedia terkelola .NET. Anda dapat mengkueri penyedia terkelola .NET untuk menentukan daftar koleksi skema yang didukung dengan memanggil GetSchema metode tanpa argumen, atau dengan nama koleksi skema "MetaDataCollections". Metode ini akan mengembalikan DataTable dengan daftar koleksi skema yang didukung, jumlah batasan yang didukung masing-masing, dan jumlah bagian pengidentifikasi yang mereka gunakan. Koleksi ini menjelaskan seluruh kolom yang diperlukan. Penyedia bebas untuk menambahkan lebih banyak kolom jika mereka mau. Misalnya, Penyedia Data Microsoft SqlClient untuk SQL Server menambahkan ParameterName ke kumpulan pembatasan.

Jika penyedia tidak bisa menentukan nilai kolom yang diperlukan, penyedia akan mengembalikan null.

Untuk informasi selengkapnya tentang menggunakan GetSchema metode , lihat Koleksi GetSchema dan Skema.

MetaDataCollections

Koleksi ini memaparkan informasi tentang semua koleksi skema yang didukung oleh penyedia yang saat ini digunakan untuk menyambungkan ke database.

ColumnName DataType Deskripsi
CollectionName string Nama koleksi yang akan diteruskan ke GetSchema metode untuk mengembalikan koleksi.
NumberOfRestrictions int Jumlah batasan yang mungkin ditentukan untuk koleksi tersebut.
NumberOfIdentifierParts int Jumlah bagian pada nama objek pengenal/database komposit. Misalnya, di SQL Server, nilainya adalah 3 untuk tabel dan 4 untuk kolom.

DataSourceInformation

Kumpulan skema ini memaparkan informasi tentang sumber data yang saat ini tersambung dengan Penyedia Data Microsoft SqlClient untuk SQL Server.

ColumnName DataType Deskripsi
CompositeIdentifierSeparatorPattern string Ekspresi reguler agar sesuai dengan pemisah komposit pada pengenal komposit. Misalnya, \. (untuk SQL Server).

Pengidentifikasi komposit biasanya digunakan untuk nama objek database, misalnya: pubs.dbo.authors atau pubs@dbo.authors.

Untuk SQL Server, gunakan ekspresi \.reguler .
DataSourceProductName string Nama produk yang diakses oleh penyedia, seperti "SQLServer".
DataSourceProductVersion string Menunjukkan versi produk yang diakses oleh penyedia, pada format asli sumber data dan bukan dalam format Microsoft.

Dalam beberapa kasus, DataSourceProductVersion dan DataSourceProductVersionNormalized akan menjadi nilai yang sama.
DataSourceProductVersionNormalized string Versi yang dinormalisasi untuk sumber data, sehingga bisa dibandingkan dengan String.Compare(). Format ini konsisten untuk semua versi penyedia untuk mencegah versi 10 mengurutkan antara versi 1 dan versi 2.

Misalnya, SQL Server menggunakan format Microsoft nn.nn.nnnn yang khas.

Dalam beberapa kasus, DataSourceProductVersion dan DataSourceProductVersionNormalized akan menjadi nilai yang sama.
GroupByBehavior GroupByBehavior Menentukan hubungan antara kolom di dalam klausa GROUP BY dan kolom non-agregat dalam daftar pilih.
IdentifierPattern string Ekspresi reguler yang cocok dengan pengidentifikasi serta memiliki nilai kecocokan pengenal. Contohnya,[A-Za-z0-9_#$].
IdentifierCase IdentifierCase Menunjukkan apakah pengidentifikasi yang tidak dikutip dianggap sebagai peka huruf besar/kecil atau tidak.
OrderByColumnsInSelect bool Menentukan apakah kolom dalam klausa ORDER BY harus ada di dalam daftar pilih. Nilai true menunjukkan bahwa nilai tersebut harus berada dalam daftar pilih. Nilai false menunjukkan bahwa nilai tersebut tidak diharuskan berada dalam daftar pilih.
ParameterMarkerFormat string String format yang mewakili cara memformat parameter.

Jika parameter bernama didukung oleh sumber data, tempat penampung pertama dalam string ini harus ada di tempat di mana nama parameter diformat.

Misalnya, jika sumber data mengharapkan parameter diberi nama dan diawali dengan : string ini adalah :{0}. Saat memformat parameter ini dengan nama p1 string yang dihasilkan adalah :p1.

Jika sumber data mengharapkan parameter diawali dengan @, tetapi nama yang sudah menyertakannya, string ini adalah {0}, dan hasil pemformatan parameter bernama @p1 adalah @p1.

Untuk sumber data yang tidak mengharapkan parameter bernama dan mengharapkan penggunaan ? karakter, string format dapat ditentukan sebagai ?, yang akan mengabaikan nama parameter.
ParameterMarkerPattern string Ekspresi reguler yang cocok dengan penanda parameter. Ini akan memiliki nilai kecocokan nama parameter, jika ada.

Misalnya, jika parameter bernama didukung dengan @ karakter prospek yang akan disertakan dalam nama parameter, pola ini adalah: (\@[A-Za-z0-9_$#]*).

Namun, jika parameter bernama didukung dengan : sebagai karakter prospek dan bukan bagian dari nama parameter, pola ini adalah: :([A-Za-z0-9_$#]\*).

Jika sumber data tidak mendukung parameter bernama, pola ini adalah ?.
ParameterNameMaxLength int Panjang karakter maksimum nama parameter. Visual Studio mengharapkan bahwa jika nama parameter didukung, nilai minimum untuk panjang maksimumnya adalah 30 karakter.

Jika sumber data tidak mendukung parameter bernama, properti ini mengembalikan nol.
ParameterNamePattern string Ekspresi reguler yang cocok dengan nama parameter yang valid. Sumber data yang berbeda memiliki aturan yang berbeda tentang karakter yang dapat digunakan untuk nama parameter.

Visual Studio mengharapkan bahwa jika nama parameter didukung, karakter \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} adalah kumpulan karakter minimum yang didukung yang valid untuk nama parameter.
QuotedIdentifierPattern string Ekspresi reguler yang cocok dengan pengidentifikasi yang dikutip dan memiliki nilai kecocokan dari pengidentifikasi itu sendiri tanpa tanda kutip. Misalnya, jika sumber data menggunakan tanda kutip ganda untuk mengidentifikasi pengidentifikasi yang dikutip, pola ini adalah: (([^\\"]\|\\"\\")*).
QuotedIdentifierCase IdentifierCase Menunjukkan apakah pengidentifikasi yang dikutip dianggap sebagai peka huruf besar/kecil atau tidak.
StatementSeparatorPattern string Ekspresi reguler yang cocok dengan pemisah pernyataan.
StringLiteralPattern string Ekspresi reguler yang cocok dengan string literal serta memiliki nilai kecocokan dari literal itu sendiri. Misalnya, jika sumber data menggunakan tanda kutip tunggal untuk mengidentifikasi string, pola ini adalah: ('([^']\|'')*')'
SupportedJoinOperators SupportedJoinOperators Menentukan jenis pernyataan gabungan SQL apa yang didukung oleh sumber data.

DataTypes

Kumpulan skema ini memaparkan informasi tentang jenis data yang didukung oleh database yang saat ini tersambung dengan penyedia.

ColumnName DataType Deskripsi
TypeName string Nama tipe data khusus penyedia.
ProviderDbType int Nilai tipe khusus penyedia yang harus digunakan ketika menentukan jenis parameter. Contohnya,SqlDbType.Money.
ColumnSize long Panjang kolom atau parameter non-numerik. Nilai ini mengacu pada maksimum atau panjang yang ditentukan untuk jenis ini oleh penyedia.

Untuk data karakter, nilai ini adalah panjang maksimum atau yang ditentukan dalam unit, yang ditentukan oleh sumber data.

Untuk jenis data tanggal-waktu, nilai ini adalah panjang representasi string (dengan asumsi presisi maksimum yang diizinkan dari komponen detik pecahan).

Jika jenis data numerik, nilai ini adalah batas atas pada presisi maksimum jenis data.
CreateFormat string Memformat string yang mewakili cara menambahkan kolom ini ke dalam pernyataan definisi data, seperti CREATE TABLE. Setiap elemen dalam CreateParameter array harus diwakili oleh "penanda parameter" dalam string format.

Contohnya, desimal tipe data SQL membutuhkan presisi dan skala. Dalam hal ini, string format adalah DECIMAL({0},{1}).
CreateParameters string Parameter pembuatan yang harus ditentukan ketika membuat kolom tipe data ini. Setiap parameter pembuatan tercantum dalam string, dipisahkan oleh koma dalam urutan yang akan disediakan.

Contohnya, desimal tipe data SQL membutuhkan presisi dan skala. Dalam hal ini, parameter pembuatan harus berisi string "presisi, skala".

Dalam perintah teks untuk membuat kolom DECIMAL dengan presisi 10 dan skala 2, nilai kolom CreateFormat mungkin DECIMAL({0},{1}) dan spesifikasi jenis lengkapnya adalah DECIMAL(10,2).
DataType string Nama jenis .NET dari jenis data.
IsAutoincrementable bool true - Nilai jenis data ini mungkin bertahakan otomatis.

false - Nilai jenis data ini mungkin tidak bertahakan otomatis.

Properti ini hanya menunjukkan apakah kolom tipe data ini mungkin bertahap otomatis, bukan berarti semua kolom jenis ini bertahap otomatis.
IsBestMatch bool true - Jenis data adalah kecocokan terbaik antara semua jenis data di penyimpanan data dan jenis data .NET yang ditunjukkan oleh nilai dalam DataType kolom.

false - Jenis data bukan yang paling cocok.

Untuk setiap set baris di mana nilai DataType kolom sama, IsBestMatch kolom diatur ke true hanya dalam satu baris.
IsCaseSensitive bool true - Jenis data adalah jenis karakter dan peka huruf besar/kecil.

false - Jenis data bukan jenis karakter atau tidak peka huruf besar/kecil.
IsFixedLength bool true - Kolom jenis data ini yang dibuat oleh bahasa definisi data (DDL) akan memiliki panjang tetap.

false - Kolom jenis data ini yang dibuat oleh DDL akan memiliki panjang variabel.

DBNull.Value - Tidak diketahui apakah penyedia akan memetakan bidang ini dengan kolom panjang tetap atau panjang variabel.
IsFixedPrecisionScale bool true - Jenis data memiliki presisi dan skala tetap.

false - Jenis data tidak memiliki presisi dan skala tetap.
IsLong bool true - Jenis data berisi data yang sangat panjang; definisi data yang sangat panjang khusus untuk penyedia.

false - Jenis data tidak berisi data yang sangat panjang.
IsNullable bool true - Jenis data nullable.

false - Jenis data tidak dapat diubah ke null.

DBNull.Value - Tidak diketahui apakah jenis data dapat diubah ke null.
IsSearchable bool true - Jenis data dapat digunakan dalam klausul WHERE dengan operator apa pun kecuali predikat LIKE.

false - Jenis data tidak dapat digunakan dalam klausa WHERE dengan operator apa pun kecuali predikat LIKE.
IsSearchableWithLike bool true - Jenis data dapat digunakan dengan predikat LIKE.

false - Jenis data tidak dapat digunakan dengan predikat LIKE.
IsUnsigned bool true - Jenis data tidak ditandatangani.

false - Jenis data ditandatangani.

DBNull.Value - Tidak berlaku untuk jenis data.
MaximumScale short Jika indikator jenis adalah jenis numerik, nilai ini adalah jumlah maksimum digit yang diizinkan di sebelah kanan titik desimal. Jika tidak, nilai ini adalah DBNull.Value.
MinimumScale short Jika indikator jenis adalah jenis numerik, nilai ini adalah jumlah minimum digit yang diizinkan di sebelah kanan titik desimal. Jika tidak, nilai ini adalah DBNull.Value.
IsConcurrencyType bool true – Jenis data diperbarui oleh database setiap kali baris diubah dan nilai kolom berbeda dari semua nilai sebelumnya.

false – Jenis data dicatat diperbarui oleh database setiap kali baris diubah.

DBNull.Value – Database tidak mendukung jenis data ini.
IsLiteralSupported bool true – Jenis data dapat dinyatakan sebagai harfiah.

false – Jenis data tidak dapat diekspresikan sebagai harfiah.
LiteralPrefix string Awalan diterapkan ke literal tertentu.
LiteralSuffix string Akhiran diterapkan pada literal tertentu.

Batasan

Kumpulan skema ini mengekspos informasi tentang pembatasan yang didukung oleh penyedia yang saat ini digunakan untuk menyambungkan ke database.

ColumnName DataType Deskripsi
CollectionName string Nama koleksi yang diterapkan pembatasan ini.
RestrictionName string Nama pembatasan dalam koleksi ini.
RestrictionDefault string Diabaikan.
RestrictionNumber int Lokasi sebenarnya pada batasan koleksi tempat pembatasan khusus ini jatuh.

ReservedWords

Kumpulan skema ini memaparkan informasi tentang kata-kata yang dicadangkan oleh database yang saat ini tersambung dengan penyedia.

ColumnName DataType Deskripsi
ReservedWord string Kata khusus penyedia khusus.

Lihat juga