Makale numarası: 309681 - Son Gözden Geçirme: 01 Temmuz 2004 Perşembe - Gözden geçirme: 3.4 Nasıl yapılır: GetOleDbSchemaTable ve Visual C# .NET kullanarak şema bilgilerini al
Bu SayfadaÖzetBu makalede, OleDbConnection nesnesinin GetOleDbSchemaTable yöntemi ADO.NET veritabanı şema bilgilerini almak için nasıl kullanılacağı gösterilmektedir. Şema bir veri kaynağında veritabanları veya veri kaynağı, tablolar ve görünümler bir veritabanında kullanılabilen kataloglarını yanı sıra, vb. bulunan kısıtlamalar bilgilerdir. Şema bilgileri bir tabloda birincil anahtar sütunları ve otomatik numara alanları içerir. Bir SqlClient.SqlConnection nesne kullandığınızda, yöntem GetOleDbSchemaTable için eşdeğer olduğunu unutmayın. .NET Data Provider "SQL Server saklı yordamlar ve bilgilendirme görünümleri aracılığıyla arka uç şema bilgilerini gösterir. Görünümler ve Microsoft SQL Server'ı kullanılabilen saklı yordamlar hakkında daha fazla bilgi için MSDN Kitaplığı'nda Transact-SQL başvuru konusuna bakın. GereksinimlerAşağıdaki listede, gereksinim duyacağınız donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
GetOleDbSchemaTable OleDbConnection nesnesinin yöntemiOLE DB .NET Data Provider, şema bilgileri göstermek için OleDbConnection nesnesinin GetOleDbSchemaTable yöntemini kullanır. GetOleDbSchemaTable şema bilgilerle doldurulan bir DataTable ' ı verir.Ilk bağımsız değişken GetOleDbSchemaTable, şema parametresi, hangi şema bilgileri (tablolar, sütunlar ve birincil anahtarlar gibi) geri dönmek için tanımlayan OleDbSchemaGuid bağımsız değişken var. Ikinci bağımsız değişken bir nesne DataTable şemada döndürülen satırları süzmek için kısıtlamaları dizidir (örneğin, tablo adını, türünü, sahibi ve /or şema ile ilgili kısıtlamalar belirtebilir). OleDbSchemaGuid üyelerOleDbSchemaGuid bağımsız değişkeni, şema tablosu GetOleDbSchemaTable yöntemi türünü belirtir. OleDbSchemaGuid üyeleri bazıları şunlardır:
SınırlamalarHer biri için elde edilen DataTable, DataColumn karşılık gelen nesne süzgeç değerler dizisi, kısıtlamaları var. OleDbSchemaGuid bağımsız değişkeni ilgili kısıtlamalar belirler. OleDbSchemaGuid bir tablo belirttiğinizde, örneğin, dizi kısıtlamaları şöyledir:{table_catalog, table_schema, table_name, table_type} Kullanılabilir kısıtlamaları gözden geçirmek için aşağıdaki Microsoft Web sitesini OleDbSchemaGuid üyelerden birini tıklatın: OleDbSchemaGuid üyeler Kısıtlama dizideki değerler geçirdiğinizde, Visual C# .NET null anahtar için değerler içeren bir dizi öğelerini içerir. Örneğin, tablo şemaları almak istiyorsanız, bu OleDbSchemaGuid.Tables kullanın. Tablo seçeneğini belirlerseniz, ancak bu da diğer adlar, eşanlamlıları, görünümler ve ilgili diğer nesneleri döndürür. Bu nedenle, tablolar hariç tüm nesneleri süzmek istiyorsanız, bir TABLO kısıtlaması için TABLE_TYPE kullanın. Bu nesnelerde süzme nedeniyle, null TABLE_CATALOG TABLE_SCHEMA ve TABLE_NAME için kullanabilirsiniz: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidmemberstopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidmemberstopic.asp) Döndürülen DataTableGetOleDbSchemaTable yöntemi döndürür DataTableOleDbSchemaGuid türü ve sınırlama ölçütünü karşılayan her nesne için bir satır vardır. DataTable, her ek şema bilgilerini OleDbSchemaGuid alanını temel alarak arkasından bir sınırlama sütun için sütun vardır.Şu kodu kullanın, örneğin, her satırda bir DataTable döndürülen bir veritabanı tablosu olur: Bu sütun adları (diğer bir deyişle, alan tanımlayıcıları TABLE_CATALOG TABLE_SCHEMA ve TABLE_NAME gibi) listesini edinmek için <a0></a0>, sıralı konumunu sütunları kullanabilirsiniz. Sıfır tabanlı sütun dizi olduğunu unutmayın: Liste tabloları içeren bir örnek bir veritabanı oluşturun...Aşağıdaki örnek, Northwind SQL Server tabloları listeler veritabanı.OleDbSchemaGuid.Tables belirli bir oturum için erişilebilir bu tabloları (görünümler dahil olmak üzere) döndürür. {Null, boş, boş, "TABLE"} nesne dizisi belirtirseniz, yalnızca bir TABLE_TYPE, TABLO eklemek için filtre uygulayın. Sonra tabloyu listelediğiniz döndürülen şema tablosundaki her satırın (TABLE_NAME) adı.
Bu tablo için şema alır örnek oluşturmaAşağıdaki örnek, çalışanlar için şema bilgileri listeler SQL Server Northwind veritabanındaki bir tablo.OleDbSchemaGuid.Tables belirli bir oturum için erişilebilir bu tabloları (görünümler dahil olmak üzere) döndürür. Nesne dizisi belirtirseniz, {null, boş, "Çalışanlar", "TABLE"}, yalnızca Çalışanlar adlı bir tablo eklemek için süzgeç. Ardından, döndürülen şema tablo için şema bilgileri listeler.
Bir tablodaki sütunları listeler, örnek oluşturmaAşağıdaki örnek çalışanları sütun adları, SQL Server Northwind veritabanındaki tablo listeler.OleDbSchemaGuid.Columns bu sütunları Tablo ve görünümleri, belirli bir oturum açma erişilebilen verir. {Null, boş, "Çalışanlar", null} nesne dizisi belirtirseniz, yalnızca Çalışanlar tablosunu sütunları eklemek için filtre uygulayın.
Bir tablodaki birincil anahtarları listeler, örnek oluşturmaAşağıdaki örnek listeler SQL Server Northwind çalışanların bir birincil anahtar tablosu, veritabanı ve çalışan SQL Server Pubs veritabanındaki tablo.Bu birincil anahtarlar OleDbSchemaGuid.Primary_Keys belirli bir oturum için erişilebilir bir katalog verir. Bu örnekte, SQL Server'a, ancak belirli bir SQL Server veritabanına OleDbConnection ise: Northwind veritabanındaki Çalışanlar tablosunun birincil anahtarı edinmek için <a0></a0>, {"Kızılırmak", "dbo", "Çalışanlar"} nesne dizisi kullanın:
ReferanslarOleDbSchemaGuid üyeleri tam listesi için Microsoft .NET, aşağıdaki konuya bakın Framework Software Development Kit'e (SDK) belgeleri. Kullanılabilir kısıtlamaları listesi için OleDbSchemaGuid üyelerden birini tıklatın: OleDbSchemaGuid üyeler Daha fazla bilgi için .NET'nda aşağıdaki konulara başvurun Framework SDK belgelerine: http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid_members.aspx (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid_members.aspx) Bir veritabanından şema bilgileri edinme http://msdn.microsoft.com/en-us/library/kcax58fh.aspx (http://msdn.microsoft.com/en-us/library/kcax58fh.aspx) OleDbConnection.GetOleDbSchemaTable yöntemi http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbconnection.getoledbschematable.aspx (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbconnection.getoledbschematable.aspx) OleDbSchemaGuid.Tables alan http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid.tables.aspx (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid.tables.aspx) OleDbSchemaGuid.Columns alan http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid.columns.aspx (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid.columns.aspx) OleDbSchemaGuid.Primary_Keys alan http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid.primary_keys.aspx (http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid.primary_keys.aspx) Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:309681
(http://support.microsoft.com/kb/309681/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste