IDataReader IDataReader IDataReader IDataReader Interface

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 Framework che accedono a database relazionali.Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET Framework data providers that access relational databases.

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

Esempi

L'esempio seguente crea le istanze di classi derivate SqlConnection, SqlCommand, e SqlDataReader.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. L'esempio legge i dati, scrive nella console.The example reads through the data, writing it out to the console. Infine, l'esempio chiude il SqlDataReader, quindi il SqlConnection.Finally, the example closes the SqlDataReader, then the SqlConnection.

using System;
using System.Data;
using System.Data.SqlClient;


class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }

    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 record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[1]));
    }

}
Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    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

End Module

Commenti

Il IDataReader e IDataRecord interfacce consentono a una classe che eredita implementare un DataReader (classe), che fornisce un metodo per leggere uno o più flussi forward-only di set di risultati.The IDataReader and IDataRecord interfaces allow an inheriting class to implement a DataReader class, which provides a means of reading one or more forward-only streams of result sets. Per altre informazioni sulle DataReader le classi, vedere recupero di dati mediante DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Un'applicazione non crea un'istanza di IDataReader interfaccia direttamente, ma crea un'istanza di una classe che eredita IDataReader.An application does not create an instance of the IDataReader interface directly, but creates an instance of a class that inherits IDataReader.

Le classi che ereditano IDataReader deve implementare i membri ereditati e in genere definisce membri aggiuntivi per aggiungere funzionalità specifiche del provider.Classes that inherit IDataReader must implement the inherited members, and typically define additional members to add provider-specific functionality.

Le modifiche apportate a un set di risultati, un altro processo o thread durante la lettura dei dati possono essere visibili all'utente di una classe che implementa un IDataReader.Changes made to a result set by another process or thread while data is being read may be visible to the user of a class that implements an IDataReader. Tuttavia, il comportamento preciso viene provider dipende sia temporizzazione.However, the precise behavior is both provider and timing dependent.

Note per gli implementatori

Per promuovere la coerenza tra i provider di dati .NET Framework, assegnare un nome alla classe che eredita il form Prv Command, dove Prv è il prefisso uniform assegnato a tutte le classi in uno specifico spazio dei nomi provider di dati .NET Framework.To promote consistency among .NET Framework data providers, name the inheriting class in the form Prv Command where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. Ad esempio, Sql è il prefisso del SqlDataAdapter classe la System.Data.SqlClient dello spazio dei nomi.For example, Sql is the prefix of the SqlDataAdapter class in the System.Data.SqlClient namespace.

Non è possibile creare un'istanza di un DataReader direttamente alla classe.Users do not create an instance of a DataReader class directly. Invece possibile ottenere il DataReader dell'istanza tramite il ExecuteReader metodo il Command oggetto.Instead, they obtain the DataReader instance through the ExecuteReader method of the Command object. Pertanto, è necessario contrassegnare DataReader costruttori come interni.Therefore, you should mark DataReader constructors as internal.

Proprietà

Depth Depth Depth Depth

Ottiene un valore che indica il livello di annidamento della riga corrente.Gets a value indicating the depth of nesting for the current row.

FieldCount FieldCount FieldCount FieldCount

Ottiene il numero di colonne nella riga corrente.Gets the number of columns in the current row.

(Inherited from IDataRecord)
IsClosed IsClosed IsClosed IsClosed

Ottiene un valore che indica se il lettore dati è chiuso.Gets a value indicating whether the data reader is closed.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Ottiene la colonna che si trova in corrispondenza dell'indice specificato.Gets the column located at the specified index.

(Inherited from IDataRecord)
Item[String] Item[String] Item[String] Item[String]

Ottiene la colonna con il nome specificato.Gets the column with the specified name.

(Inherited from IDataRecord)
RecordsAffected RecordsAffected RecordsAffected RecordsAffected

Ottiene il numero di righe modificate, inserite o eliminate dall'esecuzione dell'istruzione SQL.Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.

Metodi

Close() Close() Close() Close()

Chiude l'oggetto IDataReader.Closes the IDataReader Object.

Dispose() Dispose() Dispose() Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Inherited from IDisposable)
GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32)

Ottiene il valore della colonna specificata come valore Boolean.Gets the value of the specified column as a Boolean.

(Inherited from IDataRecord)
GetByte(Int32) GetByte(Int32) GetByte(Int32) GetByte(Int32)

Ottiene il valore dell'intero senza segno a 8 bit della colonna specificata.Gets the 8-bit unsigned integer value of the specified column.

(Inherited from IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32) GetBytes(Int32, Int64, Byte[], Int32, Int32) 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.Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

(Inherited from IDataRecord)
GetChar(Int32) GetChar(Int32) GetChar(Int32) GetChar(Int32)

Ottiene il valore del carattere della colonna specificata.Gets the character value of the specified column.

(Inherited from IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32) GetChars(Int32, Int64, Char[], Int32, Int32) 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.Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

(Inherited from IDataRecord)
GetData(Int32) GetData(Int32) GetData(Int32) GetData(Int32)

Restituisce IDataReader per l'ordinale di colonna specificato.Returns an IDataReader for the specified column ordinal.

(Inherited from IDataRecord)
GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32)

Ottiene le informazioni sul tipo di dati per il campo specificato.Gets the data type information for the specified field.

(Inherited from IDataRecord)
GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32)

Ottiene il valore dei dati di data e ora del campo specificato.Gets the date and time data value of the specified field.

(Inherited from IDataRecord)
GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32)

Ottiene il valore numerico con posizione fissa del campo specificato.Gets the fixed-position numeric value of the specified field.

(Inherited from IDataRecord)
GetDouble(Int32) GetDouble(Int32) GetDouble(Int32) GetDouble(Int32)

Ottiene il numero a virgola mobile con precisione doppia del campo specificato.Gets the double-precision floating point number of the specified field.

(Inherited from IDataRecord)
GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32)

Ottiene le informazioni relative a Type corrispondenti al tipo di Object che verrebbe restituito da GetValue(Int32).Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

(Inherited from IDataRecord)
GetFloat(Int32) GetFloat(Int32) GetFloat(Int32) GetFloat(Int32)

Ottiene il numero a virgola mobile con precisione singola del campo specificato.Gets the single-precision floating point number of the specified field.

(Inherited from IDataRecord)
GetGuid(Int32) GetGuid(Int32) GetGuid(Int32) GetGuid(Int32)

Restituisce il valore GUID del campo specificato.Returns the GUID value of the specified field.

(Inherited from IDataRecord)
GetInt16(Int32) GetInt16(Int32) GetInt16(Int32) GetInt16(Int32)

Ottiene il valore dell'intero con segno a 16 bit del campo specificato.Gets the 16-bit signed integer value of the specified field.

(Inherited from IDataRecord)
GetInt32(Int32) GetInt32(Int32) GetInt32(Int32) GetInt32(Int32)

Ottiene il valore dell'intero con segno a 32 bit del campo specificato.Gets the 32-bit signed integer value of the specified field.

(Inherited from IDataRecord)
GetInt64(Int32) GetInt64(Int32) GetInt64(Int32) GetInt64(Int32)

Ottiene il valore dell'intero con segno a 64 bit del campo specificato.Gets the 64-bit signed integer value of the specified field.

(Inherited from IDataRecord)
GetName(Int32) GetName(Int32) GetName(Int32) GetName(Int32)

Ottiene il nome del campo da trovare.Gets the name for the field to find.

(Inherited from IDataRecord)
GetOrdinal(String) GetOrdinal(String) GetOrdinal(String) GetOrdinal(String)

Restituisce l'indice del campo denominato.Return the index of the named field.

(Inherited from IDataRecord)
GetSchemaTable() GetSchemaTable() GetSchemaTable() GetSchemaTable()

Restituisce un oggetto DataTable che descrive i metadati della colonna di IDataReader.Returns a DataTable that describes the column metadata of the IDataReader.

GetString(Int32) GetString(Int32) GetString(Int32) GetString(Int32)

Ottiene il valore stringa del campo specificato.Gets the string value of the specified field.

(Inherited from IDataRecord)
GetValue(Int32) GetValue(Int32) GetValue(Int32) GetValue(Int32)

Restituisce il valore del campo specificato.Return the value of the specified field.

(Inherited from IDataRecord)
GetValues(Object[]) GetValues(Object[]) GetValues(Object[]) GetValues(Object[])

Popola una matrice di oggetti con i valori della colonna del record corrente.Populates an array of objects with the column values of the current record.

(Inherited from IDataRecord)
IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32)

Indica se il campo specificato è impostato su Null.Return whether the specified field is set to null.

(Inherited from IDataRecord)
NextResult() NextResult() NextResult() NextResult()

Sposta il lettore dati al risultato successivo durante la lettura dei risultati di un batch di istruzioni SQL.Advances the data reader to the next result, when reading the results of batch SQL statements.

Read() Read() Read() Read()

Sposta l'oggetto IDataReader al record successivo.Advances the IDataReader to the next record.

Si applica a