Partager via


IDataReader Interface

Définition

Fournit un moyen de lire un ou plusieurs flux avant uniquement de jeux de résultats obtenus en exécutant une commande sur une source de données ; est implémenté par les fournisseurs de données .NET 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 IDataRecord
    interface IDisposable
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
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 et les écrit 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 et IDataRecord permettent à une classe héritée d’implémenter une DataReader classe, ce qui permet de lire un ou plusieurs flux avant uniquement de jeux de résultats. 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 de instance de l’interface IDataReader directement, mais crée un instance d’une classe qui hérite IDataReader.

Les classes qui héritent IDataReader doivent implémenter les membres hérités et généralement définir 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 moment.

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 Commande où Prv est le préfixe uniforme donné à toutes les classes d’un espace de noms de fournisseur de données .NET Framework spécifique. Par exemple, Sql est le préfixe de la SqlDataAdapter classe dans l’espace de System.Data.SqlClient noms.

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

Propriétés

Depth

Obtient une valeur indiquant la profondeur d'imbrication de la ligne actuelle.

FieldCount

Obtient le nombre de colonnes figurant dans la ligne actuelle.

(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]

Récupère 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

Close()

Ferme l'objet IDataReader.

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

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

Obtient la valeur de la colonne spécifiée sous la forme d'une valeur Boolean.

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

Récupère la valeur de l’entier signé 8 bits de la colonne spécifiée.

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

Lit un flux d’octets à partir de l’offset de colonne spécifié dans la mémoire tampon comme un tableau, en commençant à l’offset 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 à partir de l’offset de colonne spécifié dans la mémoire tampon comme un tableau, en commençant à l’offset de mémoire tampon donné.

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

Retourne un IDataReader pour le numéro de colonne spécifié.

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

Obtient les informations sur le 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 à 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 informations Type correspondant au type de Object qui doit être retourné à partir de GetValue(Int32).

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

Obtient le nombre à 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 de l’entier signé 16 bits du champ spécifié.

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

Obtient la valeur de l’entier signé 32 bits du champ spécifié.

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

Récupère la valeur de l’entier signé 64 bits du champ spécifié.

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

Obtient le nom du champs à rechercher.

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

Retourne l’index du champ nommé.

(Hérité de IDataRecord)
GetSchemaTable()

Retourne un DataTable qui décrit les métadonnées de colonne de IDataReader.

Retourne null si la commande exécutée n’a retourné aucun jeu de résultats, ou après NextResult() avoir retourné 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 une valeur indiquant si le champ spécifié a la valeur null.

(Hérité de IDataRecord)
NextResult()

Avance le lecteur de données jusqu’au résultat suivant lors de la lecture des résultats d’instructions SQL par lots.

Read()

Fait passer le IDataReader à l’enregistrement suivant.

S’applique à