Cum pentru a prelua coloana Schema utilizând DataReader GetSchemaTable metoda și Visual C#.NET

Traduceri articole Traduceri articole
ID articol: 310107 - View products that this article applies to.
Măriți totul | Reduceți totul

În această pagină

REZUMAT

Prezentul articol demonstrează cum se utilizează metoda GetSchemaTable obiectului DataReader în ADO.NET pentru a regăsi informații de schemă coloana. Un alt nume pentru schemă o coloană este proprietățile câmpului. Informa?iile de schemă coloana include următoarele informații despre coloana:
  • nume
  • Tip acoperire de date
  • Dimensiunea
  • Dacă coloana este o câmpul cheie primară
  • Dacă coloana este o AutoNumerotare (AutoIncrement) câmp
Metoda GetSchemaTable întoarce o proprietate DataTable care conține schema de coloană pentru o DataReader. DataTable conține un rând pentru fiecare câmp din resultset. Fiecare coloană Maps pentru o proprietate a câmpului în resultset. Proprietatea numecoloană coloana DataTable este nume de sign-in câmpul de proprietate, cum ar fi proprietatea numecoloană, TipDate, ColumnSize, IsKeyColumnsau IsAutoIncrement . Valoarea din coloana de DataTable este valoarea proprietății câmpului, cum ar fi valoarea FirstName pentru proprietatea numecoloană .
Notă Pentru a obține informații cheie primară, inclusiv, dacă este un câmp parte a unei chei primare și dacă este un câmp AutoIncrement , setați valoarea CommandBehaviorDataReader la CommandBehavior.KeyInfo.

Utilizați metoda GetSchemaTable cu fie OLE DB.NET furnizorul sau SQL.NET furnizor de consolidare servicii. Metoda OleDbDataReader.GetSchemaTable hărți la metoda OLE DB IColumnsRowset::GetColumnsRowset . Metoda SqlDataReader.GetSchemaTable nu utilizează un strat OLE DB Provider.

Note, Dacă nu utilizați în mod explicit metoda GetSchemaTable , DataReader nu întoarce coloana schemă. De asemenea, dacă utilizați GetSchemaTable pentru a regăsi schema de coloană, nu actualizați DataReader. DataReader întotdeauna preia un flux doar-în-citire, forward-only acoperire de date de la un bază acoperire de date.

Când se utilizează metoda GetSchemaTable

  • Obiectul SqlConnection nu acceptă regăsirea de informații de schemă SQL Server într-o metodă similară cu metoda obiectului OleDbConnectionGetOleDbSchemaTable . Metoda GetSchemaTable de clasa SqlDataReader oferă o modalitate simplă pentru a obține coloana schemă informații de la SQL Server.
  • Deși obiectului OleDbConnectionGetOleDbSchemaTable metoda poate returna date, tabel și coloană schemă informații, Puteți găsi că metoda GetSchemaTable obiectului DataReader este mai ușor de utilizat dacă doriți pentru a regăsi numai coloana informa?iile de schemă.
  • Utilizați metoda GetSchemaTable pentru a crea un nou DataTable bazat pe o proprietate existentă pentru DataTable schemă în marcă de timp ce vă particulariza nume de sign-in de coloane și alte coloana atribute. Pentru mostre de cod care demonstrează modul de a utiliza GetSchemaTable pentru a defini un tabel nou, se referă la "Visual Studio probe: Fitch și Mather 7.0 Executare interogare SQL"subiectul în Microsoft Visual Studio .NET Online Documentația de ajutor.

Prelua coloana Schema cu OLE DB.NET furnizor

Acest eșantion listează informații de schemă pentru coloanele (câmp Proprietăți) din tabelul angajați în SQL Server Northwind bază acoperire de date.

Rețineți că atunci când se utilizează OLE DB.NET furnizor, utilizați metoda GetSchemaTable de obiect OleDbDataReader .
  1. Start Visual Studio .NET, și apoi să creați un nou Visual C# Consola de aplicarea proiectului. Class1.CS este creat implicit.
  2. Deschideți fereastra de cod pentru Class1. Lipiți următorul cod în partea de sus a ferestrei codul de mai sus declara?ia de spațiu de nume :
    using System.Data;
    using System.Data.OleDb;
    					
  3. În fereastra de cod, lipiți următorul cod în funcția principală :
    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. Modificați parametrii de proprietatea ConnectionString pentru a conecta corespunzător la serverul SQL calculator.
  5. Apăsați tasta F5 pentru a compila și pentru a rula proiectului. Anunț că proprietățile fiecărui câmp sunt enumerate în fereastra consolei.
  6. Apăsați ENTER pentru a defila în listă, sfârșitul consola cerere, și întoarcere la mediu integrat de dezvoltare (IDE).

Prelua coloana Schema cu SQL.NET furnizor

Acest eșantion listează informații de schemă pentru coloanele (câmp Proprietăți) din tabelul angajați în SQL Server Northwind bază acoperire de date.

Rețineți că atunci când se utilizează SQL.NET furnizor, utilizați metoda GetSchemaTable de obiect SqlDataReader .
  1. Start Visual Studio .NET, și de a crea un nou Visual C# Consola de aplicarea proiectului. Class1.CS este creat implicit.
  2. Deschideți fereastra de cod pentru Class1. Lipiți următorul cod în partea de sus a ferestrei codul de mai sus declara?ia de spațiu de nume :
    using System.Data;
    using System.Data.SqlClient;
    					
  3. În fereastra de cod, lipiți următorul cod în funcția principală :
    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. Modificați parametrii de proprietatea ConnectionString pentru a conecta corespunzător la serverul SQL calculator.
  5. Apăsați F5 pentru a compila și pentru a rula proiectului. Observați că proprietățile fiecărui câmp sunt enumerate în fereastra consolei.
  6. Apăsați ENTER pentru a defila în listă, sfârșitul consola cerere, și întoarcere la IDE.

REFERINȚE

Pentru mai multe informații despre DataReader și metoda GetSchemaTable , consultați următoarele subiecte în Visual Studio .NET Online Documentația de ajutor:
Regăsirea datelor utilizând DataReader

Metoda IDataReader.GetSchemaTable

Notă: acest subiect include o listă completă de coloane în returnat DataTable.

Metoda OleDbDataReader.GetSchemaTable

Metoda SqlDataReader.GetSchemaTable
Pentru informații suplimentare despre utilizarea obiectului OleDbConnectionGetOleDbSchemaTable metoda pentru a regăsi informații de schemă, faceți clic pe numărul de articol mai jos pentru a vedea articolul în bază de cunoștințe Microsoft:
309681 Cum pentru a regăsi informații de schemă utilizând GetOleDbSchemaTable și Visual C#.NET

Proprietă?i

ID articol: 310107 - Ultima examinare: 12 iunie 2012 - Revizie: 1.0
SE APLICĂ LA:
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Cuvinte cheie: 
kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 310107

Trimite?i 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