Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

Zum Abrufen des Spaltenschemas mit dem DataReader GetSchemaTable-Methode und Visual c#.NET

Dieser Artikel wurde zuvor veröffentlicht unter D310107
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 310107
Für eine Microsoft Visual Basic.NET-Version dieses Artikel, finden Sie unter 310108.
Für Microsoft Visual C++ .NET-Version dieses Artikels, finden Sie unter 309683.

Dieser Artikel bezieht auf der folgenden Microsoft.NET Framework-Klassenbibliotheken:
  • System.Data.OleDb

IN DIESER AUFGABE

Zusammenfassung
Dieser Artikel beschreibt, wie mithilfe die GetSchemaTable- Methode des DataReader -Objekts in ADO.NET, um Spalten-Schemainformationen abzurufen. Eine andere Namen für das Schema einer Spalte sind ihre Feldeigenschaften. Spalten-Schemainformationen enthält die folgende Informationen über die Spalte:
  • Name
  • Datentyp
  • Größe
  • Gibt an, ob die Spalte ein Primärschlüsselfeld ist
  • Gibt an, ob die Spalte ein AutoWert (AutoIncrement) ist Feld
Die GetSchemaTable- Methode gibt eine DataTable -Eigenschaft, die das Spaltenschema für einen DataReaderenthält. Die DataTable enthält eine Zeile für jedes Feld im Resultset. Jede Spalte eine Eigenschaft des Feldes in der Ergebnismenge zugeordnet. Die ColumnName -Eigenschaft der DataTable -Spalte ist der Name der Eigenschaft des Feldes, z. B. die Eigenschaft ColumnName, DataType, ColumnSize, IsKeyColumnoder IsAutoIncrement . Der Wert der DataTable -Spalte ist der Wert der Eigenschaft des Felds, wie z. B. der Wert FirstName für die ColumnName -Eigenschaft.
Hinweis Um die Primärschlüssel-Informationen, z. B. ob ein Feld ist zu erhalten. Teil eines Primärschlüssels und ob es sich um eine AutoIncrement -Feld ist, müssen Sie den CommandBehavior -Wert des DataReader auf CommandBehavior.KeyInfofestlegen.

Sie können die GetSchemaTable- Methode mit entweder die OLE DB verwenden.NET-Provider oder der SQL.NET Anbieter. OleDbDataReader.GetSchemaTable -Methode ordnet die OLE DB IColumnsRowset:: GetColumnsRowset -Methode. SqlDataReader.GetSchemaTable -Methode verwendet keine OLE DB Provider-Schicht.

Der Hinweis, sofern Sie explizit die GetSchemaTable- Methode verwenden, kehrt der DataReader Spalten-Schemainformationen. Auch wenn Sie GetSchemaTable zum Abrufen des Spaltenschemas verwenden, können keine DataReaderaktualisieren. Der DataReader ruft immer einen schreibgeschützten, vorwärtsgerichteten Datenstrom von einer Datenbank.

back to the top

Verwenden Sie die GetSchemaTable-Methode

  • Das SqlConnection -Objekt unterstützt keine SQL Server-Schemainformationen abrufen in einer Methode, die Analog zur GetOleDbSchemaTable -Methode des OleDbConnection -Objekts. Die GetSchemaTable- Methode der SqlDataReader -Klasse bietet ein einfaches Verfahren zum Abrufen von Spalten-Schemainformationen Informationen von SQL Server.
  • Obwohl die GetOleDbSchemaTable -Methode des OleDbConnection -Objekts Datenbank-, Tabellen- und Spalten-Schemainformationen zurückgeben kann, Sie können feststellen, dass die GetSchemaTable- Methode des DataReader -Objekts erleichtert, wenn Sie nur die Spalte abrufen möchten Schemainformationen.
  • Die GetSchemaTable- Methode können Sie erstellen eine neue Datentabelle basierend auf einer vorhandenen DataTable -Eigenschaft Schema, während Sie die Spaltennamen und andere anpassen Spaltenattribute. Beispielcode, der veranschaulicht, wie Sie GetSchemaTable zum Definieren einer neuen Tabelle verwenden, finden Sie in der "Visual Studio Samples: Fitch and Mather 7.0 SQL Abfrage ausführen"Thema in der Microsoft-Visual Studio.NET Online Hilfedokumentation.
back to the top

Abrufen des Spaltenschemas mit dem OLE DB.NET-Anbieter

In diesem Beispiel werden die Schemainformationen für die Spalten (Feld aufgelistet. Eigenschaften) der Employees-Tabelle in der Northwind-SQL Server Datenbank.

Beachten Sie, dass, wenn Sie die OLE DB verwenden.NET-Datenprovider verwenden Sie die GetSchemaTable- Methode des OleDbDataReader -Objekts.
  1. Starten Sie Visual Studio.NET, und erstellen Sie ein neues Visual c# Konsolenanwendungsprojekt. Class1.cs wird standardmäßig erstellt.
  2. Öffnen Sie das Codefenster für Class1. Fügen Sie folgenden code oben in das Codefenster über der Namespace -Deklaration:
    using System.Data;using System.Data.OleDb;					
  3. Fügen Sie im Codefenster den folgenden Code in die Main -Funktion:
    OleDbConnection cn = new OleDbConnection();OleDbCommand cmd = new OleDbCommand();DataTable schemaTable; OleDbDataReader myReader; 			 //Open a connection to the SQL Server Northwind database.cn.ConnectionString = "Provider=SQLOLEDB;Data Source=server;User ID=login;                       Password=password;Initial Catalog=Northwind";cn.Open();//Retrieve records from the Employees table into a DataReader.cmd.Connection = cn;cmd.CommandText = "SELECT * FROM Employees";myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo); //Retrieve column schema into a DataTable.schemaTable = myReader.GetSchemaTable();//For each field in the table...foreach (DataRow myField in schemaTable.Rows){    //For each property of the field...    foreach (DataColumn myProperty in schemaTable.Columns) {	//Display the field name and value.	Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());    }    Console.WriteLine();    //Pause.    Console.ReadLine();}//Always close the DataReader and connection.myReader.Close();cn.Close();					
  4. Ändern Sie die Parameter der ConnectionString -Eigenschaft einer Verbindung mit Ihrem SQL Server Computer.
  5. Drücken Sie F5, kompilieren und das Projekt auszuführen. Hinweis dass die Eigenschaften jedes Felds im Konsolenfenster aufgelistet sind.
  6. Drücken Sie die EINGABETASTE, um die Liste durchblättern, beenden die Konsole Anwendung und zurückkehren zu der integrierten Entwicklungsumgebung (IDE).
back to the top

Abrufen des Spaltenschemas mit der SQL.NET-Anbieter

In diesem Beispiel werden die Schemainformationen für die Spalten (Feld aufgelistet. Eigenschaften) der Employees-Tabelle in der Northwind-SQL Server Datenbank.

Beachten Sie, dass, wenn Sie die SQL verwenden.NET-Datenprovider verwenden Sie die GetSchemaTable- Methode des SqlDataReader -Objekts.
  1. Starten Sie Visual Studio.NET und erstellen Sie ein neues Visual c# Konsolenanwendungsprojekt. Class1.cs wird standardmäßig erstellt.
  2. Öffnen Sie das Codefenster für Class1. Fügen Sie folgenden code oben in das Codefenster über der Namespace -Deklaration:
    using System.Data;using System.Data.SqlClient;					
  3. Fügen Sie im Codefenster den folgenden Code in die Main -Funktion:
    SqlConnection cn = new SqlConnection();SqlCommand cmd = new SqlCommand();DataTable schemaTable; SqlDataReader myReader; 			 //Open a connection to the SQL Server Northwind database.cn.ConnectionString = "Data Source=server;User ID=login;                       Password=password;Initial Catalog=Northwind";cn.Open();//Retrieve records from the Employees table into a DataReader.cmd.Connection = cn;cmd.CommandText = "SELECT * FROM Employees";myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo);//Retrieve column schema into a DataTable.schemaTable = myReader.GetSchemaTable();//For each field in the table...foreach (DataRow myField in schemaTable.Rows){    //For each property of the field...    foreach (DataColumn myProperty in schemaTable.Columns) {	//Display the field name and value.	Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());    }    Console.WriteLine();    //Pause.    Console.ReadLine();}//Always close the DataReader and connection.myReader.Close();cn.Close();					
  4. Ändern Sie die Parameter der ConnectionString -Eigenschaft einer Verbindung mit Ihrem SQL Server Computer.
  5. Drücken Sie F5, kompilieren und das Projekt auszuführen. Beachten Sie, dass die Eigenschaften der einzelnen Felder werden im Konsolenfenster aufgelistet.
  6. Drücken Sie die EINGABETASTE, um die Liste durchblättern, beenden die Konsole Anwendungs- und Rückkehr in der IDE.
back to the top
Informationsquellen
Weitere Informationen über den DataReader und die GetSchemaTable- Methode finden Sie unter die folgenden Themen in der Visual Studio.NET Online Hilfe-Dokumentation:
Abrufen von Daten mit dem DataReader-Objekt

IDataReader.GetSchemaTable-Methode

Hinweis: Dieses Thema enthält eine vollständige Liste der Spalten in der zurückgegebene DataTable.

OleDbDataReader.GetSchemaTable-Methode

SqlDataReader.GetSchemaTable-Methode
Weitere Informationen zum Verwenden von GetOleDbSchemaTable -Methode des OleDbConnection -Objekts zum Abrufen von Schemainformationen finden Sie im Artikel unten, um den Artikel der Microsoft Knowledge Base anzuzeigen:
309681 Zum Abrufen von Schemainformationen mittels GetOleDbSchemaTable und Visual c# mit.NET
back to the top

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 310107 – Letzte Überarbeitung: 06/12/2012 06:10:00 – Revision: 1.0

Microsoft ADO.NET 1.1, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtde
Feedback