Het Schema van de kolom ophalen met behulp van de GetSchemaTable-methode DataReader en Visual C# .NET

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 310107 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel wordt beschreven hoe de methode GetSchemaTable van het object DataReader gebruiken in ADO.NET schemagegevens kolom. Een andere naam voor het schema van een kolom is de veldeigenschappen. Schemagegevens kolom bevat de volgende informatie over de kolom:
  • Naam
  • Gegevenstype
  • Grootte
  • Of de kolom een primaire-sleutelveld is
  • Of de kolom is het type AutoNummering (AutoIncrement)
De methode GetSchemaTable retourneert een DataTable -eigenschap die het schema van de kolom voor een DataReader bevat. Het DataTable bevat één rij voor elk veld in de resultaatset. Elke kolom wordt toegewezen aan een eigenschap van het veld in de resultaatset. De eigenschap kolomnaam van de kolom DataTable is de naam van de eigenschap van het veld, zoals de eigenschap kolomnaam, gegevenstype, ColumnSize, IsKeyColumnof IsAutoIncrement . De waarde van de gegevenstabel kolom is de waarde van de eigenschap van het veld bijvoorbeeld de waarde Voornaam van de eigenschap kolomnaam .
Opmerking Voor de primaire sleutel informatie, waaronder of een veld deel uitmaakt van een primaire sleutel en of dit een AutoIncrement -veld, moet u de waarde CommandBehavior van DataReader instellen op CommandBehavior.KeyInfo.

Met de OLE DB .NET Provider of de Provider SQL .NET kunt u de methode GetSchemaTable . De methode OleDbDataReader.GetSchemaTable wordt toegewezen aan de OLE DB- IColumnsRowset::GetColumnsRowset -methode. De methode SqlDataReader.GetSchemaTable wordt niet gebruikt voor een laag OLE DB-Provider.

Van de notitie, tenzij u de methode GetSchemaTable expliciet gebruikt levert DataReader geen kolom schema. Als u GetSchemaTable gebruikt voor het ophalen van het schema van de kolom, bijwerken niet u bovendien DataReader. DataReader ophaalt altijd een alleen-lezen, alleen-voorwaarts gegevensstroom uit een database.

Wanneer gebruikt u de methode GetSchemaTable

  • Het object SqlConnection biedt geen ondersteuning voor een methode die analoog zijn aan de GetOleDbSchemaTable -methode van het object OleDbConnection ophalen SQL Server-schema informationin. De methode GetSchemaTable van de klasse SqlDataReader biedt een eenvoudige manier voor de kolom schemainformation van SQL Server.
  • Hoewel de OleDbConnection -object GetOleDbSchemaTable methode database, tabel- en schemagegevens kolom retourneren kan, merkt u dat de GetSchemaTable van het object DataReader gemakkelijker is te gebruiken als u wilt dat alleen de columnschema gegevens op te halen.
  • U kunt de GetSchemaTable -methode voor het maken van een nieuwe gegevenstabel op basis van een bestaande eigenschap DataTable van schema terwijl u de kolomnamen en de kenmerken van de othercolumn aanpassen. Raadpleeg het onderwerp 'Visual Studio monsters: Fitchand Mather 7.0 SQL Query uitvoeren' in de documentatie voor Microsoft Visual Studio .NET OnlineHelp voor voorbeeldcode die laat hoe u GetSchemaTable zien kunt u een nieuwe tabel te definiëren.

Schema van de kolom met de OLE DB .NET Provider ophalen

In dit voorbeeld worden de schemagegevens voor de kolommen (eigenschappen) van de tabel werknemers in de SQL Server-database Northwind.

U ziet dat als u de OLE DB .NET Provider, de methode GetSchemaTable van het OleDbDataReader -object gebruikt.
  1. Start Visual Studio .NET en maak een nieuw Visual C #Console Application-project. Class1.cs wordt standaard gemaakt.
  2. Open het venster Code voor Class1. Plak de volgende codeat de bovenkant van het codevenster boven de declaratie van de naamruimte :
    using System.Data;
    using System.Data.OleDb;
    					
  3. Plak de volgende code in de Main -functie in het venster Code:
    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. De parameters van de eigenschap ConnectionString goed verbinding maken met de SQL-Servercomputer wijzigt.
  5. Druk op F5 om te compileren en uit te voeren van het project. Noticethat die de eigenschappen van elk veld worden weergegeven in het consolevenster.
  6. Druk op ENTER om door de lijst bladeren en terug te keren naar de Environment(IDE) van de geïntegreerde ontwikkeling beëindigen van de consoleapplication.

Schema van de kolom met de Provider SQL .NET ophalen

In dit voorbeeld worden de schemagegevens voor de kolommen (eigenschappen) van de tabel werknemers in de SQL Server-database Northwind.

U ziet dat als u de SQL .NET Provider, de methode GetSchemaTable van het object SqlDataReader gebruikt .
  1. Start Visual Studio .NET en maak een nieuw Visual C #Console toepassing project. Class1.cs wordt standaard gemaakt.
  2. Open het venster Code voor Class1. Plak de volgende codeat de bovenkant van het codevenster boven de declaratie van de naamruimte :
    using System.Data;
    using System.Data.SqlClient;
    					
  3. Plak de volgende code in de Main -functie in het venster Code:
    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. De parameters van de eigenschap ConnectionString goed verbinding maken met de SQL-Servercomputer wijzigt.
  5. Druk op F5 om te compileren en uit te voeren van het project. U ziet dat de theproperties van elk veld worden weergegeven in het consolevenster.
  6. Druk op ENTER om door de lijst schuiven en terug te keren naar de IDE beëindigen van de consoleapplication.

Referenties

Zie de volgende onderwerpen in de Visual Studio .NET on line Help-documentatie voor meer informatie over de DataReader en de methode GetSchemaTable :
Gegevens op te halen met behulp van de DataReader

IDataReader.GetSchemaTable, methode

Opmerking: dit onderwerp bevat een volledige lijst van de kolommen in de geretourneerde DataTable.

OleDbDataReader.GetSchemaTable, methode

SqlDataReader.GetSchemaTable, methode
Als u meer informatie over het gebruik van OleDbConnection -object GetOleDbSchemaTable methode voor het ophalen van informatie over het schema, klikt u op het artikel in de Microsoft Knowledge Base:
309681 Het Schema-informatie ophalen met behulp van GetOleDbSchemaTable en Visual C# .NET

Eigenschappen

Artikel ID: 310107 - Laatste beoordeling: dinsdag 29 oktober 2013 - Wijziging: 3.0
De informatie in dit artikel is van toepassing op:
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Trefwoorden: 
kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.
De Engelstalige versie van dit artikel is de volgende: 310107

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com