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.
System.MarshalByRefObject
System.Data.Common.DbDataReader
System.Data.SqlClient.SqlDataReader
Spazio dei nomi: System.Data.SqlClient
Assembly: System.Data (in System.Data.dll)
Public Class SqlDataReader _ Inherits DbDataReader _ Implements IDataReader, IDisposable, IDataRecord
public class SqlDataReader : DbDataReader, IDataReader, IDisposable, IDataRecord
public ref class SqlDataReader : public DbDataReader, IDataReader, IDisposable, IDataRecord
type SqlDataReader = class inherit DbDataReader interface IDataReader interface IDisposable interface IDataRecord end
Il tipo SqlDataReader espone i seguenti membri.
| Nome | Descrizione | |
|---|---|---|
|
Connection | Ottiene l'oggetto SqlConnection associato all'oggetto SqlDataReader. |
|
Depth | Ottiene un valore che indica la profondità dell'annidamento per la riga corrente. (Esegue l'override di DbDataReader.Depth). |
|
FieldCount | Ottiene il numero delle colonne nella riga corrente. (Esegue l'override di DbDataReader.FieldCount). |
|
HasRows | Ottiene un valore che indica se l'oggetto SqlDataReader contiene una o più righe. (Esegue l'override di DbDataReader.HasRows). |
|
IsClosed | Recupera un valore Boolean che indica se l'istanza SqlDataReader specificata è stata chiusa. (Esegue l'override di DbDataReader.IsClosed). |
|
Item[Int32] | Ottiene il valore della colonna specificata nel formato nativo, data la posizione ordinale della colonna. (Esegue l'override di DbDataReader.Item[Int32]). |
|
Item[String] | Ottiene il valore della colonna specificata nel formato nativo, dato il nome della colonna. (Esegue l'override di DbDataReader.Item[String]). |
|
RecordsAffected | Ottiene il numero di righe modificate, inserite o eliminate dall'esecuzione dell'istruzione Transact-SQL. (Esegue l'override di DbDataReader.RecordsAffected). |
|
VisibleFieldCount | Ottiene il numero di campi non nascosti nella classe SqlDataReader. (Esegue l'override di DbDataReader.VisibleFieldCount). |
| Nome | Descrizione | |
|---|---|---|
|
Close | Chiude l'oggetto SqlDataReader. (Esegue l'override di DbDataReader.Close()). |
|
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) |
|
Dispose() | Rilascia tutte le risorse utilizzate dall'istanza corrente della classe DbDataReader. (Ereditato da DbDataReader) |
|
Dispose(Boolean) | Libera le risorse gestite utilizzate dalla classe DbDataReader ed eventualmente libera le risorse non gestite. (Ereditato da DbDataReader) |
|
Equals(Object) | Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object) |
|
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) |
|
GetBoolean | Ottiene il valore della colonna specificata come valore Boolean. (Esegue l'override di DbDataReader.GetBoolean(Int32)). |
|
GetByte | Ottiene il valore della colonna specificata sotto forma di byte. (Esegue l'override di DbDataReader.GetByte(Int32)). |
|
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)). |
|
GetChar | Ottiene il valore della colonna specificata sotto forma di carattere singolo. (Esegue l'override di DbDataReader.GetChar(Int32)). |
|
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)). |
|
GetData | Restituisce un oggetto DbDataReader per l'ordinale della colonna richiesta. (Ereditato da DbDataReader) |
|
GetDataTypeName | Ottiene una stringa che rappresenta il tipo di dati della colonna specificata. (Esegue l'override di DbDataReader.GetDataTypeName(Int32)). |
|
GetDateTime | Ottiene il valore della colonna specificata sotto forma di oggetto DateTime. (Esegue l'override di DbDataReader.GetDateTime(Int32)). |
|
GetDateTimeOffset | Recupera il valore della colonna specificata sotto forma di oggetto DateTimeOffset. |
|
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) |
|
GetDecimal | Ottiene il valore della colonna specificata sotto forma di oggetto Decimal. (Esegue l'override di DbDataReader.GetDecimal(Int32)). |
|
GetDouble | Ottiene il valore della colonna specificata sotto forma di numero in virgola mobile e precisione doppia. (Esegue l'override di DbDataReader.GetDouble(Int32)). |
|
GetEnumerator | Restituisce un oggetto IEnumerator che consente di scorrere SqlDataReader. (Esegue l'override di DbDataReader.GetEnumerator()). |
|
GetFieldType | Ottiene l'oggetto Type che rappresenta il tipo di dati dell'oggetto. (Esegue l'override di DbDataReader.GetFieldType(Int32)). |
|
GetFloat | Ottiene il valore della colonna specificata sotto forma di numero in virgola mobile e precisione singola. (Esegue l'override di DbDataReader.GetFloat(Int32)). |
|
GetGuid | Ottiene il valore della colonna specificata come identificatore univoco globale (GUID). (Esegue l'override di DbDataReader.GetGuid(Int32)). |
|
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) |
|
GetInt16 | Ottiene il valore della colonna specificata sotto forma di intero con segno a 16 bit. (Esegue l'override di DbDataReader.GetInt16(Int32)). |
|
GetInt32 | Ottiene il valore della colonna specificata sotto forma di intero con segno a 32 bit. (Esegue l'override di DbDataReader.GetInt32(Int32)). |
|
GetInt64 | Ottiene il valore della colonna specificata sotto forma di intero con segno a 64 bit. (Esegue l'override di DbDataReader.GetInt64(Int32)). |
|
GetLifetimeService | Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
|
GetName | Ottiene il nome della colonna specificata. (Esegue l'override di DbDataReader.GetName(Int32)). |
|
GetOrdinal | Ottiene la posizione ordinale della colonna, dato il nome della colonna. (Esegue l'override di DbDataReader.GetOrdinal(String)). |
|
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)). |
|
GetProviderSpecificValue | Ottiene un oggetto Object che consiste in una rappresentazione del valore specifico del provider sottostante. (Esegue l'override di DbDataReader.GetProviderSpecificValue(Int32)). |
|
GetProviderSpecificValues | Ottiene una matrice di oggetti che sono una rappresentazione dei valori specifici del provider sottostante. (Esegue l'override di DbDataReader.GetProviderSpecificValues(Object[])). |
|
GetSchemaTable | Restituisce un oggetto DataTable che descrive i metadati della colonna dell'oggetto SqlDataReader. (Esegue l'override di DbDataReader.GetSchemaTable()). |
|
GetSqlBinary | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlBinary. |
|
GetSqlBoolean | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlBoolean. |
|
GetSqlByte | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlByte. |
|
GetSqlBytes | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlBytes. |
|
GetSqlChars | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlChars. |
|
GetSqlDateTime | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlDateTime. |
|
GetSqlDecimal | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlDecimal. |
|
GetSqlDouble | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlDouble. |
|
GetSqlGuid | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlGuid. |
|
GetSqlInt16 | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlInt16. |
|
GetSqlInt32 | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlInt32. |
|
GetSqlInt64 | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlInt64. |
|
GetSqlMoney | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlMoney. |
|
GetSqlSingle | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlSingle. |
|
GetSqlString | Ottiene il valore della colonna specificata sotto forma di un oggetto SqlString. |
|
GetSqlValue | Restituisce il valore dei dati della colonna specificata come tipo SQL Server. |
|
GetSqlValues | Riempie una matrice di oggetti Object che contiene i valori relativi a tutte le colonne del record, espressi come tipi SQL Server. |
|
GetSqlXml | Ottiene il valore della colonna specificata come valore XML. |
|
GetString | Ottiene il valore della colonna specificata sotto forma di stringa. (Esegue l'override di DbDataReader.GetString(Int32)). |
|
GetTimeSpan | Recupera il valore della colonna specificata sotto forma di oggetto TimeSpan. |
|
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
|
GetValue | Ottiene il valore della colonna specificata nel formato nativo. (Esegue l'override di DbDataReader.GetValue(Int32)). |
|
GetValues | Popola una matrice di oggetti con i valori della colonna della riga corrente. (Esegue l'override di DbDataReader.GetValues(Object[])). |
|
InitializeLifetimeService | Consente di ottenere un oggetto servizio di durata per il controllo dei criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
|
IsCommandBehavior | Determina se l'oggetto CommandBehavior specificato corrisponde a SqlDataReader. |
|
IsDBNull | Ottiene un valore che indica se la colonna contiene valori non esistenti o mancanti. (Esegue l'override di DbDataReader.IsDBNull(Int32)). |
|
MemberwiseClone() | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) |
|
MemberwiseClone(Boolean) | Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
|
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()). |
|
Read | Sposta l'oggetto SqlDataReader al record successivo. (Esegue l'override di DbDataReader.Read()). |
|
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| Nome | Descrizione | |
|---|---|---|
|
IDataRecord.GetData | Restituisce un oggetto IDataReader per l'ordinale della colonna specificato. |
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
|
|---|
|
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. |
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.
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
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(); } }
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supportato in: 4, 3.5 SP1Windows 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.
Nota