IDataReader Interface

Définition

Fournit un moyen de lire un ou plusieurs flux de résultats avant uniquement obtenus en exécutant une commande sur une source de données, et est implémenté par .NET fournisseurs de données qui accèdent aux bases de données relationnelles.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
Public Interface IDataReader
Implements IDataRecord, IDisposable
Dérivé
Implémente

Exemples

L’exemple suivant crée des instances des classes dérivées, SqlConnection, SqlCommandet SqlDataReader. L’exemple lit les données, en l’écrivant dans la console. Enfin, l’exemple ferme le SqlDataReader, puis le 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

Remarques

Les IDataReader interfaces IDataRecord permettent à une classe héritée d’implémenter une DataReader classe, qui fournit un moyen de lire un ou plusieurs flux de résultats vers l’avant uniquement. Pour plus d’informations sur DataReader les classes, consultez Récupération de données à l’aide d’un DataReader.

Une application ne crée pas directement une instance de l’interface IDataReader , mais crée une instance d’une classe qui hérite IDataReader.

Les classes qui héritent IDataReader doivent implémenter les membres hérités et définissent généralement des membres supplémentaires pour ajouter des fonctionnalités spécifiques au fournisseur.

Les modifications apportées à un jeu de résultats par un autre processus ou thread pendant la lecture des données peuvent être visibles par l’utilisateur d’une classe qui implémente un IDataReader. Toutefois, le comportement précis dépend à la fois du fournisseur et du minutage.

Notes pour les responsables de l’implémentation

Pour promouvoir la cohérence entre les fournisseurs de données .NET Framework, nommez la classe héritée sous la forme Prv Command où Prv est le préfixe uniforme donné à toutes les classes d’un espace de noms de fournisseur de données framework spécifique .NET Framework. Par exemple, Sql est le préfixe de la SqlDataAdapter classe dans l’espace System.Data.SqlClient de noms.

Les utilisateurs ne créent pas directement une instance d’une DataReader classe. Au lieu de cela, ils obtiennent l’instance DataReader par le biais de la ExecuteReader méthode de l’objet Command . Par conséquent, vous devez marquer DataReader les constructeurs comme internes.

Propriétés

Nom Description
Depth

Obtient une valeur indiquant la profondeur d’imbrication de la ligne active.

FieldCount

Obtient le nombre de colonnes dans la ligne active.

(Hérité de IDataRecord)
IsClosed

Obtient une valeur indiquant si le lecteur de données est fermé.

Item[Int32]

Obtient la colonne située à l’index spécifié.

(Hérité de IDataRecord)
Item[String]

Obtient la colonne portant le nom spécifié.

(Hérité de IDataRecord)
RecordsAffected

Obtient le nombre de lignes modifiées, insérées ou supprimées par l’exécution de l’instruction SQL.

Méthodes

Nom Description
Close()

Ferme l’objet IDataReader .

Dispose()

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non managées.

(Hérité de IDisposable)
GetBoolean(Int32)

Obtient la valeur de la colonne spécifiée en tant que booléen.

(Hérité de IDataRecord)
GetByte(Int32)

Obtient la valeur entière non signée 8 bits de la colonne spécifiée.

(Hérité de IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Lit un flux d’octets du décalage de colonne spécifié dans la mémoire tampon en tant que tableau, en commençant par le décalage de mémoire tampon donné.

(Hérité de IDataRecord)
GetChar(Int32)

Obtient la valeur de caractère de la colonne spécifiée.

(Hérité de IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Lit un flux de caractères du décalage de colonne spécifié dans la mémoire tampon en tant que tableau, en commençant par le décalage de mémoire tampon donné.

(Hérité de IDataRecord)
GetData(Int32)

Retourne un IDataReader ordinal de colonne spécifié.

(Hérité de IDataRecord)
GetDataTypeName(Int32)

Obtient les informations de type de données pour le champ spécifié.

(Hérité de IDataRecord)
GetDateTime(Int32)

Obtient la valeur des données de date et d’heure du champ spécifié.

(Hérité de IDataRecord)
GetDecimal(Int32)

Obtient la valeur numérique de position fixe du champ spécifié.

(Hérité de IDataRecord)
GetDouble(Int32)

Obtient le nombre à virgule flottante double précision du champ spécifié.

(Hérité de IDataRecord)
GetFieldType(Int32)

Obtient les Type informations correspondant au type de Object ce qui serait retourné par GetValue(Int32).

(Hérité de IDataRecord)
GetFloat(Int32)

Obtient le numéro à virgule flottante simple précision du champ spécifié.

(Hérité de IDataRecord)
GetGuid(Int32)

Retourne la valeur GUID du champ spécifié.

(Hérité de IDataRecord)
GetInt16(Int32)

Obtient la valeur entière signée 16 bits du champ spécifié.

(Hérité de IDataRecord)
GetInt32(Int32)

Obtient la valeur entière signée 32 bits du champ spécifié.

(Hérité de IDataRecord)
GetInt64(Int32)

Obtient la valeur entière signée 64 bits du champ spécifié.

(Hérité de IDataRecord)
GetName(Int32)

Obtient le nom du champ à rechercher.

(Hérité de IDataRecord)
GetOrdinal(String)

Retourne l’index du champ nommé.

(Hérité de IDataRecord)
GetSchemaTable()

Retourne une DataTable valeur qui décrit les métadonnées de colonne du IDataReader.

Retourne null si la commande exécutée n’a retourné aucun jeu de résultats, ou après NextResult() le retour false.

GetString(Int32)

Obtient la valeur de chaîne du champ spécifié.

(Hérité de IDataRecord)
GetValue(Int32)

Retourne la valeur du champ spécifié.

(Hérité de IDataRecord)
GetValues(Object[])

Remplit un tableau d’objets avec les valeurs de colonne de l’enregistrement actif.

(Hérité de IDataRecord)
IsDBNull(Int32)

Retourne si le champ spécifié a la valeur Null.

(Hérité de IDataRecord)
NextResult()

Avance le lecteur de données vers le résultat suivant, lors de la lecture des résultats des instructions SQL batch.

Read()

Avance le IDataReader dossier suivant.

S’applique à