Come recuperare lo Schema di colonne utilizzando il metodo GetSchemaTable di DataReader e Visual c#.NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 310107 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato precedentemente pubblicato con il codice di riferimento I310107
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene illustrato come utilizzare il metodo GetSchemaTable dell'oggetto DataReader di ADO.NET per recuperare le informazioni sullo schema di colonna. Un altro nome dello schema della colonna Ŕ la proprietÓ del campo. Informazioni sullo schema di colonna include le seguenti informazioni relative alla colonna:
  • Nome
  • Tipo di dati
  • Dimensioni
  • Se la colonna Ŕ un campo chiave primaria
  • Se la colonna Ŕ un contatore (AutoIncrement) campo
Il metodo GetSchemaTable restituisce una proprietÓ DataTable contenente lo schema di colonne per un oggetto DataReader. DataTable contiene una riga per ogni campo del resultset. Ogni colonna esegue il mapping a una proprietÓ del campo del ResultSet. La proprietÓ ColumnName della colonna DataTable Ŕ il nome della proprietÓ del campo, ad esempio la proprietÓ ColumnName, il tipo di dati, ColumnSize, IsKeyColumno IsAutoIncrement . Il valore della colonna DataTable Ŕ il valore della proprietÓ del campo, ad esempio il valore del campo nome della proprietÓ ColumnName .
Nota Per ottenere informazioni di chiave primaria, ad esempio se Ŕ un campo parte di una chiave primaria e se si tratta di un campo AutoIncrement , Ŕ necessario impostare il valore di CommandBehavior di DataReader per CommandBehavior.

╚ possibile utilizzare il metodo GetSchemaTable con sia il provider OLE DB.NET Provider o il SQL.NET Provider. Il metodo OleDbDataReader. GetSchemaTable esegue il mapping al metodo OLE DB IColumnsRowset:: GetColumnsRowset . Il metodo SqlDataReader. GetSchemaTable non utilizza un livello Provider OLE DB.

Della nota, a meno che non si utilizza in modo esplicito il metodo GetSchemaTable , DataReader non viene restituito lo schema di colonne. Inoltre, se si utilizza GetSchemaTable per recuperare lo schema di colonne, Ŕ possibile aggiornare il DataReader. DataReader recupera sempre un flusso di sola lettura, forward-only dei dati da un database.

Quando utilizzare il metodo GetSchemaTable

  • L'oggetto SqlConnection non supporta il recupero delle informazioni dello schema SQL Server in un metodo analogo al metodo GetOleDbSchemaTable dell'oggetto OleDbConnection . Il metodo GetSchemaTable della classe SqlDataReader fornisce un modo semplice per ottenere lo schema di colonne informazioni da SQL Server.
  • Sebbene il metodo GetOleDbSchemaTable dell'oggetto OleDbConnection pu˛ restituire informazioni sullo schema di colonna, database e tabella Ŕ probabile che il metodo GetSchemaTable dell'oggetto DataReader Ŕ semplice da utilizzare se si desidera recuperare solo colonna informazioni sullo schema.
  • ╚ possibile utilizzare il metodo GetSchemaTable per creare un nuovo oggetto DataTable basata sullo schema di una proprietÓ DataTable esistente Ŕ possibile personalizzare i nomi di colonna e altro attributi delle colonne. Per codice di esempio viene illustrato come utilizzare GetSchemaTable per definire una nuova tabella, consultare il "Visual Studio Samples: Fitch and Mather 7.0 Esegui SQL Query"argomento in Microsoft Visual Studio.NET in linea Guida in linea.

Consente di recuperare lo Schema di colonne con il provider OLE DB.NET Provider

In questo esempio vengono elencate le informazioni sullo schema per le colonne (campo proprietÓ) della tabella Employees in Northwind SQL Server database.

Si noti che quando si utilizza il provider OLE DB.NET, utilizza il metodo GetSchemaTable dell'oggetto OleDbDataReader .
  1. Avviare Visual Studio.NET e creare un nuovo progetto Visual c# Progetto di applicazione console. Per impostazione predefinita viene creato Class1. cs.
  2. Aprire la finestra del codice per Class1. Incollare il codice riportato di seguito nella parte superiore della finestra del codice sopra la dichiarazione dello spazio dei nomi :
    using System.Data;
    using System.Data.OleDb;
    					
  3. Nella finestra del codice incollare il codice riportato di seguito nella funzione Main :
    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. Modificare i parametri della proprietÓ ConnectionString per connettersi correttamente al SQL Server computer.
  5. Premere il tasto F5 per compilare ed eseguire il progetto. Avviso le proprietÓ di ciascun campo vengono elencate nella finestra della Console.
  6. Premere INVIO per scorrere l'elenco, terminare la console applicazione e tornare nell'ambiente di sviluppo integrato (IDE).

Consente di recuperare lo Schema di colonne con il SQL.NET Provider

In questo esempio vengono elencate le informazioni sullo schema per le colonne (campo proprietÓ) della tabella Employees in Northwind SQL Server database.

Si noti che quando si utilizza il SQL.NET, si utilizza il metodo GetSchemaTable dell'oggetto SqlDataReader .
  1. Avviare Visual Studio.NET e creare un nuovo progetto Visual c# Progetto di applicazione console. Per impostazione predefinita viene creato Class1. cs.
  2. Aprire la finestra del codice per Class1. Incollare il codice riportato di seguito nella parte superiore della finestra del codice sopra la dichiarazione dello spazio dei nomi :
    using System.Data;
    using System.Data.SqlClient;
    					
  3. Nella finestra del codice incollare il codice riportato di seguito nella funzione Main :
    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. Modificare i parametri della proprietÓ ConnectionString per connettersi correttamente al SQL Server computer.
  5. Premere F5 per compilare ed eseguire il progetto. Si noti che il proprietÓ di tutti i campi sono elencate nella finestra della Console.
  6. Premere INVIO per scorrere l'elenco, terminare la console applicazione e tornare all'IDE.

Riferimenti

Per ulteriori informazioni sull' oggetto DataReader e il metodo GetSchemaTable , vedere i seguenti argomenti in Visual Studio.NET in linea Guida in linea:
Recupero di dati mediante DataReader

Metodo IDataReader. GetSchemaTable

Nota: questo argomento include un elenco completo delle colonne del restituito oggetto DataTable.

Metodo OleDbDataReader. GetSchemaTable

Metodo SqlDataReader. GetSchemaTable
Per ulteriori informazioni sull'utilizzo del metodo GetOleDbSchemaTable dell'oggetto OleDbConnection per recuperare le informazioni sullo schema, fare clic sul numero dell'articolo Per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
309681 Come recuperare le informazioni sullo Schema tramite GetOleDbSchemaTable e Visual c#.NET

ProprietÓ

Identificativo articolo: 310107 - Ultima modifica: martedý 12 giugno 2012 - Revisione: 1.0
Le informazioni in questo articolo si applicano a:
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Chiavi:á
kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 310107
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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