Artikel-ID: 309681 - Geändert am: Donnerstag, 25. September 2003 - Version: 1.0 SO WIRD'S GEMACHT: Abrufen von Schemainformationen mittels GetOleDbSchemaTable und Visual C# .NET
Dieser Artikel wurde zuvor veröffentlicht unter D309681 Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base: 309681 (http://support.microsoft.com/kb/309681/EN-US/ ) HOW TO: Retrieve Schema Information Using GetOleDbSchemaTable and Visual C# .NET Eine Version dieses Artikels für Microsoft Visual
Basic .NET finden Sie unter
309488
(http://support.microsoft.com/kb/309488/DE/
)
. Achtung: Die in diesem Artikel aufgeführten Codebeispiele basieren auf den Beispieldatenbanken der englischsprachigen Versionen von Microsoft SQL Server oder Microsoft Access. Sie können diese Beispiele nicht mit den deutschsprachigen Beispieldatenbanken von SQL Server oder Access verwenden. Verwenden Sie entweder die englischsprachigen Versionen dieser Datenbanken, oder passen Sie die Codebeispiele so an, dass sie auf die deutschen Beispieldatenbanken und die deutschsprachigen Datenbankobjekte verweisen. Hinweis: Die Verwendung der hier aufgeführten Informationen sowie Makro-
oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt
Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf
Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf
Support zur Verfügung. Die zur Verfügung gestellten Makro- und
Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des
Beispiels aufzeigen. Weitere Informationen zu den von Microsoft angebotenen Supportoptionen finden Sie unter folgender Internetadresse: http://support.microsoft.com/
(http://support.microsoft.com/)
Bitte beachten Sie: Bei diesem Artikel handelt es sich um
eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche
Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung
nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen
basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit
dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen
wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese
Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und
übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder
Richtigkeit der Übersetzung. Auf dieser SeiteZusammenfassung Dieser Artikel beschreibt, wie Sie die GetOleDbSchemaTable-Methode des OleDbConnection-Objekts in ADO.NET verwenden können, um
Datenbank-Schemainformationen abzurufen. Schemainformationen in einer
Datenquelle umfassen Datenbanken oder Kataloge, die von der Datenquelle
verfügbar sind, Tabellen und Ansichten in einer Datenbank sowie bestehende
Einschränkungen etc. Schemainformationen in einer Tabelle umfassen
Primärschlüssel, Spalten und AutoWert-Felder. Beachten Sie, dass es bei der Verwendung eines SqlClient.SqlConnection-Objekts keine weitere Methode gibt, die GetOleDbSchemaTable entspricht. Der SQL Server .NET-Datenprovider zeigt Backend-Schemainformationen über gespeicherte Prozeduren und informative Ansichten an. Weitere Informationen zu Ansichten und gespeicherten Prozeduren, die über Microsoft SQL Server verfügbar sind, finden Sie in der Transact-SQL-Referenz in der MSDN-Bibliothek. VoraussetzungenIm folgenden werden die empfohlene Hardware, Software, Netzwerkinfrastruktur und Service Packs beschrieben, die Sie benötigen:
GetOleDbSchemaTable-Methode des OleDbConnection-ObjektsDer OLE DB .NET-Datenprovider verwendet die GetOleDbSchemaTable-Methode des OleDbConnection-Objekts, um Schemainformationen anzuzeigen. GetOleDbSchemaTable gibt eine DataTable zurück, die die Schemainformationen enthält.Das erste Argument von GetOleDbSchemaTable ist der Schemaparameter, ein OleDbSchemaGuid-Argument, das bestimmt, welche Schemainformationen (wie Tabellen, Spalten oder Primärschlüssel) zurückgegeben werden sollen. Das zweite Argument ist ein Objektarray aus Einschränkungen, die dazu dienen, die in der Schema-DataTable zurückgegebenen Zeilen zu filtern (Sie können beispielsweise Einschränkungen für Tabellenname, Tabellentyp, Tabellenbesitzer und/oder Tabellenschema definieren). OleDbSchemaGuid-MemberDas OleDbSchemaGuid-Argument definiert den Typ der Schematabelle für die GetOleDbSchemaTable-Methode. Im folgenden sind einige der OleDbSchemaGuid-Member aufgeführt:
EinschränkungenEinschränkungen stellen ein Objektarray von Filterwerten dar, von denen jeder zu einer DataColumn in der erstellten DataTable gehört. Das OleDbSchemaGuid-Argument bestimmt die jeweiligen Einschränkungen. Wenn Sie beispielsweise ein OleDbSchemaGuid von Tabellen angeben, sieht das Einschränkungsarray folgendermaßen aus:
{TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE}
Um die verfügbaren Einschränkungen zu inspizieren, klicken Sie
auf einen der OleDbSchemaGuid-Member auf der folgenden Microsoft-Website:
OleDbSchemaGuid Members Wenn Sie Werte in das Einschränkungsarray übertragen, fügen Sie
das Visual C# .NET-Schlüsselwort null für Arrayelemente ein, die keine Werte enthalten. Wenn Sie
beispielsweise Tabellenschemas abrufen wollen, verwenden Sie OleDbSchemaGuid.Tables. Wenn Sie Tabellen angeben, werden jedoch auch Aliase, Synonyme,
Ansichten und andere verwandte Objekte zurückgegeben. Verwenden Sie daher, wenn
Sie alle Objekte außer Tabellen ausfiltern wollen, die Einschränkung TABLE für
TABLE_TYPE. Sie können null für TABLE_CATALOG, TABLE_SCHEMA und TABLE_NAME verwenden, weil
Sie nicht nach diesen Objekten filtern: 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) Zurückgegebene DataTableDie von der GetOleDbSchemaTable-Methode zurückgegebene DataTable weist eine Zeile für jedes Objekt auf, das dem OleDbSchemaGuid-Typ und den Einschränkungskriterien entspricht. Die DataTable weist eine Spalte für jede Einschränkungsspalte auf, gefolgt von zusätzlichen Schemainformationen, die auf dem OleDbSchemaGuid-Feld basieren.Wenn Sie beispielsweise den folgenden Code verwenden, ist jede in der DataTable zurückgegebene Zeile eine Datenbanktabelle: Um diese Liste mit Spaltennamen (das heißt, die Feldbeschreibung wie TABLE_CATALOG, TABLE_SCHEMA oder TABLE_NAME) zu erhalten, können Sie die Ordinalposition der Spalten verwenden. Beachten Sie, dass das Columns-Array nullbasiert ist: Auflisten von Tabellen in einer DatenbankMit dem folgenden Beispielcode werden Tabellen in der SQL Server Northwind-Datenbank aufgelistet.OleDbSchemaGuid.Tables gibt die Tabellen (einschließlich Ansichten) zurück, die für eine bestimmte Anmeldung zugänglich sind. Wenn Sie als Objektarray {null, null, null, "TABLE"} angeben, wird so gefiltert, dass nur TABLE als TABLE_TYPE enthalten ist. Anschließend wird der Tabellenname (TABLE_NAME) jeder Zeile in der zurückgegebenen Schematabelle aufgelistet.
Abrufen eines Schemas für eine TabelleMit dem folgenden Beispielcode werden Schemainformationen für die Tabelle Personal in der SQL Server Northwind-Datenbank aufgelistet.OleDbSchemaGuid.Tables gibt die Tabellen (einschließlich Ansichten) zurück, die für eine bestimmte Anmeldung zugänglich sind. Wenn Sie als Objektarray {null, null, "Employees", "TABLE"} angeben, wird so gefiltert, dass nur eine Tabelle mit dem Namen Personal enthalten ist. Anschließend werden die Schemainformationen für die zurückgegebene Schematabelle aufgelistet.
Auflisten von Spalten in einer TabelleMit dem folgenden Beispielcode werden die Namen von Spalten der Tabelle Personal in der SQL Server Northwind-Datenbank aufgelistet.OleDbSchemaGuid.Columns gibt die Spalten in Tabellen und Ansichten zurück, die für eine bestimmte Anmeldung zugänglich sind. Wenn Sie als Objektarray {null, null, "Employees", null} angeben, wird so gefiltert, dass nur die Spalten für die Tabelle Personal enthalten sind.
Auflisten von Primärschlüsseln in einer TabelleMit dem folgenden Beispielcode werden die Primärschlüssel der Tabelle Personal in der SQL Server Northwind-Datenbank und der Tabelle Personal in der SQL Server Pubs-Datenbank aufgelistet.OleDbSchemaGuid.Primary_Keys gibt die Primärschlüssel in einem Katalog zurück, die für eine bestimmte Anmeldung zugänglich sind. Bei diesem Beispielcode besteht die OleDbConnection zu SQL Server, jedoch nicht zu einer bestimmten SQL Server-Datenbank: Um den Primärschlüssel der Tabelle Personal in der Northwind-Datenbank zu erhalten, verwenden Sie als Objektarray {"Northwind", "dbo", "Employees"}:
VerweiseEine vollständige Liste der OleDbSchemaGuid-Member finden Sie unter dem folgenden Thema in der Microsoft .NET
Framework Software Development Kit (SDK)-Dokumentation. Um eine Liste der
verfügbaren Einschränkungen zu erhalten, klicken Sie auf einen der OleDbSchemaGuid-Member:
OleDbSchemaGuid Members Weitere Informationen erhalten Sie unter den folgenden Themen in
der .NET Framework SDK-Dokumentation: 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)
Obtaining Schema Information from a Database http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconobtainingschemainformationfromdatabase.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconobtainingschemainformationfromdatabase.asp) OleDbConnection.GetOleDbSchemaTable Method http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbconnectionclassgetoledbschematabletopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbconnectionclassgetoledbschematabletopic.asp) OleDbSchemaGuid.Tables Field http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidclasstablestopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidclasstablestopic.asp) OleDbSchemaGuid.Columns Field http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidclasscolumnstopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidclasscolumnstopic.asp) OleDbSchemaGuid.Primary_Keys Field http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidclassprimary_keystopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataoledboledbschemaguidclassprimary_keystopic.asp) Die Informationen in diesem Artikel beziehen sich auf:
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
| Weitere Ressourcen Weitere SupportseitenCommunityHilfe erhaltenSPRACHE AUSWÄHLEN
|






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