Classe SqlDataReader (System.Data.SqlClient)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe SqlDataReader
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Fornisce un metodo per la lettura di un flusso di righe di tipo forward-only da un database SQL Server. La classe non può essere ereditata.

Gerarchia di ereditarietà

System.Object
  System.MarshalByRefObject
    System.Data.Common.DbDataReader
      System.Data.SqlClient.SqlDataReader

Spazio dei nomi:  System.Data.SqlClient
Assembly:  System.Data (in System.Data.dll)
Sintassi

Visual Basic
Public Class SqlDataReader _
	Inherits DbDataReader _
	Implements IDataReader, IDisposable, IDataRecord
C#
public class SqlDataReader : DbDataReader, 
	IDataReader, IDisposable, IDataRecord
Visual C++
public ref class SqlDataReader : public DbDataReader, 
	IDataReader, IDisposable, IDataRecord
F#
type SqlDataReader =  
    class
        inherit DbDataReader
        interface IDataReader
        interface IDisposable
        interface IDataRecord
    end

Il tipo SqlDataReader espone i seguenti membri.

Proprietà

  Nome Descrizione
Proprietà protetta. Connection Ottiene l'oggetto SqlConnection associato all'oggetto SqlDataReader.
Proprietà pubblica Depth Ottiene un valore che indica la profondità dell'annidamento per la riga corrente. (Esegue l'override di DbDataReader.Depth).
Proprietà pubblica FieldCount Ottiene il numero delle colonne nella riga corrente. (Esegue l'override di DbDataReader.FieldCount).
Proprietà pubblica HasRows Ottiene un valore che indica se l'oggetto SqlDataReader contiene una o più righe. (Esegue l'override di DbDataReader.HasRows).
Proprietà pubblica IsClosed Recupera un valore Boolean che indica se l'istanza SqlDataReader specificata è stata chiusa. (Esegue l'override di DbDataReader.IsClosed).
Proprietà pubblica Item[Int32] Ottiene il valore della colonna specificata nel formato nativo, data la posizione ordinale della colonna. (Esegue l'override di DbDataReader.Item[Int32]).
Proprietà pubblica Item[String] Ottiene il valore della colonna specificata nel formato nativo, dato il nome della colonna. (Esegue l'override di DbDataReader.Item[String]).
Proprietà pubblica RecordsAffected Ottiene il numero di righe modificate, inserite o eliminate dall'esecuzione dell'istruzione Transact-SQL. (Esegue l'override di DbDataReader.RecordsAffected).
Proprietà pubblica VisibleFieldCount Ottiene il numero di campi non nascosti nella classe SqlDataReader. (Esegue l'override di DbDataReader.VisibleFieldCount).
In alto
Metodi

  Nome Descrizione
Metodo pubblico Close Chiude l'oggetto SqlDataReader. (Esegue l'override di DbDataReader.Close()).
Metodo pubblico CreateObjRef Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject)
Metodo pubblico Dispose() Rilascia tutte le risorse utilizzate dall'istanza corrente della classe DbDataReader. (Ereditato da DbDataReader)
Metodo protetto Dispose(Boolean) Libera le risorse gestite utilizzate dalla classe DbDataReader ed eventualmente libera le risorse non gestite. (Ereditato da DbDataReader)
Metodo pubblico Equals(Object) Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetBoolean Ottiene il valore della colonna specificata come valore Boolean. (Esegue l'override di DbDataReader.GetBoolean(Int32)).
Metodo pubblico GetByte Ottiene il valore della colonna specificata sotto forma di byte. (Esegue l'override di DbDataReader.GetByte(Int32)).
Metodo pubblico GetBytes Legge un flusso di byte dall'offset di colonna specificato, a partire dalla matrice in corrispondenza dell'offset del buffer. (Esegue l'override di DbDataReader.GetBytes(Int32, Int64, Byte[], Int32, Int32)).
Metodo pubblico GetChar Ottiene il valore della colonna specificata sotto forma di carattere singolo. (Esegue l'override di DbDataReader.GetChar(Int32)).
Metodo pubblico GetChars Legge un flusso di caratteri dall'offset di colonna specificato nel buffer, come una matrice che inizia in corrispondenza dell'offset del buffer determinato. (Esegue l'override di DbDataReader.GetChars(Int32, Int64, Char[], Int32, Int32)).
Metodo pubblico GetData Restituisce un oggetto DbDataReader per l'ordinale della colonna richiesta. (Ereditato da DbDataReader)
Metodo pubblico GetDataTypeName Ottiene una stringa che rappresenta il tipo di dati della colonna specificata. (Esegue l'override di DbDataReader.GetDataTypeName(Int32)).
Metodo pubblico GetDateTime Ottiene il valore della colonna specificata sotto forma di oggetto DateTime. (Esegue l'override di DbDataReader.GetDateTime(Int32)).
Metodo pubblico GetDateTimeOffset Recupera il valore della colonna specificata sotto forma di oggetto DateTimeOffset.
Metodo protetto GetDbDataReader Restituisce un oggetto DbDataReader per l'ordinale della colonna richiesta, che può essere sottoposto a override tramite un'implementazione specifica del provider. (Ereditato da DbDataReader)
Metodo pubblico GetDecimal Ottiene il valore della colonna specificata sotto forma di oggetto Decimal. (Esegue l'override di DbDataReader.GetDecimal(Int32)).
Metodo pubblico GetDouble Ottiene il valore della colonna specificata sotto forma di numero in virgola mobile e precisione doppia. (Esegue l'override di DbDataReader.GetDouble(Int32)).
Metodo pubblico GetEnumerator Restituisce un oggetto IEnumerator che consente di scorrere SqlDataReader. (Esegue l'override di DbDataReader.GetEnumerator()).
Metodo pubblico GetFieldType Ottiene l'oggetto Type che rappresenta il tipo di dati dell'oggetto. (Esegue l'override di DbDataReader.GetFieldType(Int32)).
Metodo pubblico GetFloat Ottiene il valore della colonna specificata sotto forma di numero in virgola mobile e precisione singola. (Esegue l'override di DbDataReader.GetFloat(Int32)).
Metodo pubblico GetGuid Ottiene il valore della colonna specificata come identificatore univoco globale (GUID). (Esegue l'override di DbDataReader.GetGuid(Int32)).
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetInt16 Ottiene il valore della colonna specificata sotto forma di intero con segno a 16 bit. (Esegue l'override di DbDataReader.GetInt16(Int32)).
Metodo pubblico GetInt32 Ottiene il valore della colonna specificata sotto forma di intero con segno a 32 bit. (Esegue l'override di DbDataReader.GetInt32(Int32)).
Metodo pubblico GetInt64 Ottiene il valore della colonna specificata sotto forma di intero con segno a 64 bit. (Esegue l'override di DbDataReader.GetInt64(Int32)).
Metodo pubblico GetLifetimeService Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject)
Metodo pubblico GetName Ottiene il nome della colonna specificata. (Esegue l'override di DbDataReader.GetName(Int32)).
Metodo pubblico GetOrdinal Ottiene la posizione ordinale della colonna, dato il nome della colonna. (Esegue l'override di DbDataReader.GetOrdinal(String)).
Metodo pubblico GetProviderSpecificFieldType Ottiene un oggetto Object che consiste in una rappresentazione del tipo di campo specifico del provider sottostante. (Esegue l'override di DbDataReader.GetProviderSpecificFieldType(Int32)).
Metodo pubblico GetProviderSpecificValue Ottiene un oggetto Object che consiste in una rappresentazione del valore specifico del provider sottostante. (Esegue l'override di DbDataReader.GetProviderSpecificValue(Int32)).
Metodo pubblico GetProviderSpecificValues Ottiene una matrice di oggetti che sono una rappresentazione dei valori specifici del provider sottostante. (Esegue l'override di DbDataReader.GetProviderSpecificValues(Object[])).
Metodo pubblico GetSchemaTable Restituisce un oggetto DataTable che descrive i metadati della colonna dell'oggetto SqlDataReader. (Esegue l'override di DbDataReader.GetSchemaTable()).
Metodo pubblico GetSqlBinary Ottiene il valore della colonna specificata sotto forma di un oggetto SqlBinary.
Metodo pubblico GetSqlBoolean Ottiene il valore della colonna specificata sotto forma di un oggetto SqlBoolean.
Metodo pubblico GetSqlByte Ottiene il valore della colonna specificata sotto forma di un oggetto SqlByte.
Metodo pubblico GetSqlBytes Ottiene il valore della colonna specificata sotto forma di un oggetto SqlBytes.
Metodo pubblico GetSqlChars Ottiene il valore della colonna specificata sotto forma di un oggetto SqlChars.
Metodo pubblico GetSqlDateTime Ottiene il valore della colonna specificata sotto forma di un oggetto SqlDateTime.
Metodo pubblico GetSqlDecimal Ottiene il valore della colonna specificata sotto forma di un oggetto SqlDecimal.
Metodo pubblico GetSqlDouble Ottiene il valore della colonna specificata sotto forma di un oggetto SqlDouble.
Metodo pubblico GetSqlGuid Ottiene il valore della colonna specificata sotto forma di un oggetto SqlGuid.
Metodo pubblico GetSqlInt16 Ottiene il valore della colonna specificata sotto forma di un oggetto SqlInt16.
Metodo pubblico GetSqlInt32 Ottiene il valore della colonna specificata sotto forma di un oggetto SqlInt32.
Metodo pubblico GetSqlInt64 Ottiene il valore della colonna specificata sotto forma di un oggetto SqlInt64.
Metodo pubblico GetSqlMoney Ottiene il valore della colonna specificata sotto forma di un oggetto SqlMoney.
Metodo pubblico GetSqlSingle Ottiene il valore della colonna specificata sotto forma di un oggetto SqlSingle.
Metodo pubblico GetSqlString Ottiene il valore della colonna specificata sotto forma di un oggetto SqlString.
Metodo pubblico GetSqlValue Restituisce il valore dei dati della colonna specificata come tipo SQL Server.
Metodo pubblico GetSqlValues Riempie una matrice di oggetti Object che contiene i valori relativi a tutte le colonne del record, espressi come tipi SQL Server.
Metodo pubblico GetSqlXml Ottiene il valore della colonna specificata come valore XML.
Metodo pubblico GetString Ottiene il valore della colonna specificata sotto forma di stringa. (Esegue l'override di DbDataReader.GetString(Int32)).
Metodo pubblico GetTimeSpan Recupera il valore della colonna specificata sotto forma di oggetto TimeSpan.
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico GetValue Ottiene il valore della colonna specificata nel formato nativo. (Esegue l'override di DbDataReader.GetValue(Int32)).
Metodo pubblico GetValues Popola una matrice di oggetti con i valori della colonna della riga corrente. (Esegue l'override di DbDataReader.GetValues(Object[])).
Metodo pubblico InitializeLifetimeService Consente di ottenere un oggetto servizio di durata per il controllo dei criteri di durata per l'istanza. (Ereditato da MarshalByRefObject)
Metodo protetto IsCommandBehavior Determina se l'oggetto CommandBehavior specificato corrisponde a SqlDataReader.
Metodo pubblico IsDBNull Ottiene un valore che indica se la colonna contiene valori non esistenti o mancanti. (Esegue l'override di DbDataReader.IsDBNull(Int32)).
Metodo protetto MemberwiseClone() Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protetto MemberwiseClone(Boolean) Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject)
Metodo pubblico NextResult Sposta il visualizzatore di dati al risultato successivo, durante la lettura dei risultati delle istruzioni Transact-SQL batch. (Esegue l'override di DbDataReader.NextResult()).
Metodo pubblico Read Sposta l'oggetto SqlDataReader al record successivo. (Esegue l'override di DbDataReader.Read()).
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto
Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfaccia Metodo privato IDataRecord.GetData Restituisce un oggetto IDataReader per l'ordinale della colonna specificato.
In alto
Note

Per creare un oggetto SqlDataReader, è necessario chiamare il metodo ExecuteReader dell'oggetto SqlCommand, anziché utilizzare direttamente un costruttore.

Mentre l'oggetto SqlDataReader è in uso, l'oggetto SqlConnection associato è occupato a rendere disponibile l'oggetto SqlDataReader e non sarà possibile eseguire alcuna operazione sull'oggetto SqlConnection se non chiuderlo. almeno fino a quando non viene chiamato il metodo Close dell'oggetto SqlDataReader. Non è possibile, ad esempio, recuperare parametri di output se non dopo aver chiamato il metodo Close.

Le modifiche apportate a un gruppo di risultati da un altro processo o thread durante la lettura dei dati, sono visualizzabili dagli utenti di SqlDataReader. Il comportamento preciso, comunque, dipende dal tempo.

IsClosed e RecordsAffected sono le uniche proprietà che è possibile chiamare dopo la chiusura della classe SqlDataReader. Anche se è possibile accedere alla proprietà RecordsAffected in presenza dell'oggetto SqlDataReader, è preferibile chiamare sempre il metodo Close prima della restituzione del valore della proprietà RecordsAffected per essere certi dell'esattezza del valore restituito.

Nota Nota

Per prestazioni ottimali, l'oggetto SqlDataReader evita la creazione di oggetti non necessari o di copie superflue di dati. Di conseguenza, in caso di più chiamate ai metodi come GetValue verrà restituito un riferimento allo stesso oggetto. Prestare attenzione in caso di modifica del valore sottostante degli oggetti restituiti dai metodi come GetValue.

Esempi

Nell'esempio che segue vengono creati un oggetto SqlConnection, un oggetto SqlCommand e un oggetto SqlDataReader. I dati sono letti e quindi scritti nella finestra della console. Il codice chiude l'oggetto SqlDataReader. L'oggetto SqlConnection viene chiuso automaticamente alla fine del blocco di codice using.

Visual Basic

Private Sub ReadOrderData(ByVal connectionString As String)
    Dim queryString As String = _
        "SELECT OrderID, CustomerID FROM dbo.Orders;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call Read before accessing data.
        While reader.Read()
            Console.WriteLine(String.Format("{0}, {1}", _
                reader(0), reader(1)))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub


C#

private static void ReadOrderData(string connectionString)
{
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call Read before accessing data.
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }

        // Call Close when done reading.
        reader.Close();
    }
}


Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1
Piattaforme

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche

Riferimenti

Altre risorse