Condividi tramite


IDataReader Interfaccia

Definizione

Consente di leggere uno o più flussi forward-only di set di risultati ottenuti eseguendo un comando in corrispondenza di un'origine dati e viene implementata dai provider di dati .NET che accedono a database relazionali.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
Derivato
Implementazioni

Esempio

Nell'esempio seguente vengono create istanze delle classi derivate, , SqlConnectionSqlCommande SqlDataReader. L'esempio legge i dati, scrivendoli nella console. Infine, l'esempio chiude , SqlDataReaderquindi .SqlConnection

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())
        {
            ReadSingleRow((IDataRecord)reader);
        }

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

private static void ReadSingleRow(IDataRecord dataRecord)
{
    Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
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()
            ReadSingleRow(CType(reader, IDataRecord))
        End While

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

Private Sub ReadSingleRow(ByVal record As IDataRecord)
   Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub

Commenti

Le IDataReader interfacce e IDataRecord consentono a una classe che eredita di implementare una DataReader classe , che consente di leggere uno o più flussi forward-only dei set di risultati. Per altre informazioni sulle DataReader classi, vedere Recupero di dati tramite un DataReader.

Un'applicazione non crea direttamente un'istanza dell'interfaccia IDataReader , ma crea un'istanza di una classe che eredita IDataReader.

Le classi che ereditano IDataReader devono implementare i membri ereditati e in genere definiscono membri aggiuntivi per aggiungere funzionalità specifiche del provider.

Le modifiche apportate a un set di risultati da un altro processo o thread durante la lettura dei dati possono essere visibili all'utente di una classe che implementa un oggetto IDataReader. Tuttavia, il comportamento preciso è dipendente dal provider e dal temporizzazione.

Note per gli implementatori

Per promuovere la coerenza tra i provider di dati .NET Framework, denominare la classe che eredita nel formato Prv Comando dove Prv è il prefisso uniforme assegnato a tutte le classi in uno spazio dei nomi del provider di dati .NET Framework specifico. Ad esempio, Sql è il prefisso della SqlDataAdapter classe nello spazio dei System.Data.SqlClient nomi .

Gli utenti non creano direttamente un'istanza di una DataReader classe. Ottengono invece l'istanza DataReader tramite il ExecuteReader metodo dell'oggetto Command . Pertanto, è necessario contrassegnare DataReader i costruttori come interni.

Proprietà

Depth

Ottiene un valore che indica il livello di annidamento della riga corrente.

FieldCount

Ottiene il numero di colonne nella riga corrente.

(Ereditato da IDataRecord)
IsClosed

Ottiene un valore che indica se il lettore dati è chiuso.

Item[Int32]

Ottiene la colonna che si trova in corrispondenza dell'indice specificato.

(Ereditato da IDataRecord)
Item[String]

Ottiene la colonna con il nome specificato.

(Ereditato da IDataRecord)
RecordsAffected

Ottiene il numero di righe modificate, inserite o eliminate dall'esecuzione dell'istruzione SQL.

Metodi

Close()

Chiude l'oggetto IDataReader.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

(Ereditato da IDisposable)
GetBoolean(Int32)

Ottiene il valore della colonna specificata come valore Boolean.

(Ereditato da IDataRecord)
GetByte(Int32)

Ottiene il valore dell'intero senza segno a 8 bit della colonna specificata.

(Ereditato da IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Legge un flusso di byte dall'offset di colonna specificato nel buffer come matrice, a partire dall'offset del buffer specificato.

(Ereditato da IDataRecord)
GetChar(Int32)

Ottiene il valore del carattere della colonna specificata.

(Ereditato da IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Legge un flusso di caratteri dall'offset di colonna specificato nel buffer come matrice, a partire dall'offset del buffer specificato.

(Ereditato da IDataRecord)
GetData(Int32)

Restituisce IDataReader per l'ordinale di colonna specificato.

(Ereditato da IDataRecord)
GetDataTypeName(Int32)

Ottiene le informazioni sul tipo di dati per il campo specificato.

(Ereditato da IDataRecord)
GetDateTime(Int32)

Ottiene il valore dei dati di data e ora del campo specificato.

(Ereditato da IDataRecord)
GetDecimal(Int32)

Ottiene il valore numerico con posizione fissa del campo specificato.

(Ereditato da IDataRecord)
GetDouble(Int32)

Ottiene il numero a virgola mobile con precisione doppia del campo specificato.

(Ereditato da IDataRecord)
GetFieldType(Int32)

Ottiene le informazioni relative a Type corrispondenti al tipo di Object che verrebbe restituito da GetValue(Int32).

(Ereditato da IDataRecord)
GetFloat(Int32)

Ottiene il numero a virgola mobile con precisione singola del campo specificato.

(Ereditato da IDataRecord)
GetGuid(Int32)

Restituisce il valore GUID del campo specificato.

(Ereditato da IDataRecord)
GetInt16(Int32)

Ottiene il valore dell'intero con segno a 16 bit del campo specificato.

(Ereditato da IDataRecord)
GetInt32(Int32)

Ottiene il valore dell'intero con segno a 32 bit del campo specificato.

(Ereditato da IDataRecord)
GetInt64(Int32)

Ottiene il valore dell'intero con segno a 64 bit del campo specificato.

(Ereditato da IDataRecord)
GetName(Int32)

Ottiene il nome del campo da trovare.

(Ereditato da IDataRecord)
GetOrdinal(String)

Restituisce l'indice del campo denominato.

(Ereditato da IDataRecord)
GetSchemaTable()

Restituisce un oggetto DataTable che descrive i metadati della colonna di IDataReader.

Restituisce null se il comando eseguito non ha restituito alcun set di risultati o dopo NextResult() restituisce false.

GetString(Int32)

Ottiene il valore stringa del campo specificato.

(Ereditato da IDataRecord)
GetValue(Int32)

Restituisce il valore del campo specificato.

(Ereditato da IDataRecord)
GetValues(Object[])

Popola una matrice di oggetti con i valori della colonna del record corrente.

(Ereditato da IDataRecord)
IsDBNull(Int32)

Indica se il campo specificato è impostato su Null.

(Ereditato da IDataRecord)
NextResult()

Sposta il lettore dati al risultato successivo durante la lettura dei risultati di un batch di istruzioni SQL.

Read()

Sposta l'oggetto IDataReader al record successivo.

Si applica a