SqlDataReader Classe

Définition

Fournit un moyen de lire un flux avant uniquement de lignes à partir d’une base de données SQL Server. Cette classe ne peut pas être héritée.

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class SqlDataReader : System::Data::Common::DbDataReader, System::Data::Common::IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, System.Data.Common.IDbColumnSchemaGenerator
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
type SqlDataReader = class
    inherit MarshalByRefObject
    interface IEnumerable
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
    interface IDbColumnSchemaGenerator
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator
Héritage
SqlDataReader
Héritage
Héritage
SqlDataReader
Implémente

Exemples

L’exemple suivant crée un SqlConnection, un SqlCommandet un SqlDataReader. L’exemple lit les données et les écrit dans la fenêtre de console. Le code ferme ensuite .SqlDataReader est SqlConnection fermé automatiquement à la fin du bloc de using code.

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

Remarques

Pour créer un SqlDataReader, vous devez appeler la ExecuteReader méthode de l’objet SqlCommand , au lieu d’utiliser directement un constructeur.

Pendant que le SqlDataReader est utilisé, le associé SqlConnection est occupé à servir le SqlDataReader, et aucune autre opération ne peut être effectuée sur le autre que de le SqlConnection fermer. C’est le cas jusqu’à ce que la Close méthode du SqlDataReader soit appelée. Par exemple, vous ne pouvez pas récupérer les paramètres de sortie tant qu’après avoir appelé Close.

Les modifications apportées à un jeu de résultats par un autre processus ou thread pendant la lecture des données peuvent être visibles pour l'utilisateur de l'élément SqlDataReader. Cependant, le comportement précis dépend du minutage.

IsClosed et RecordsAffected sont les seules propriétés pouvant être appelées après la fermeture de l'élément SqlDataReader. Bien que la RecordsAffected propriété soit accessible tant que le SqlDataReader existe, appelez Close toujours avant de retourner la valeur de RecordsAffected pour garantir une valeur de retour exacte.

Lors de l’utilisation de l’accès séquentiel (CommandBehavior.SequentialAccess), un InvalidOperationException est déclenché si la SqlDataReader position est avancée et si une autre opération de lecture est tentée sur la colonne précédente.

Notes

Pour des performances optimales, SqlDataReader évite de créer des objets inutiles ou d’effectuer des copies inutiles des données. Par conséquent, plusieurs appels à des méthodes telles que GetValue retournent une référence au même objet. Soyez prudent si vous modifiez la valeur sous-jacente des objets retournés par des méthodes telles que GetValue.

Propriétés

Connection

Obtient l'objet SqlConnection associé à l'objet SqlDataReader.

Depth

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

FieldCount

Obtient le nombre de colonnes figurant dans la ligne actuelle.

HasRows

Obtient une valeur qui indique si SqlDataReader contient une ou plusieurs lignes.

IsClosed

Récupère une valeur booléenne qui indique si l'instance de SqlDataReader spécifiée a été fermée.

Item[Int32]

Obtient la valeur de la colonne spécifiée dans son format natif en fonction du numéro de la colonne.

Item[String]

Obtient la valeur de la colonne spécifiée dans son format natif en fonction du nom de la colonne.

RecordsAffected

Obtient le nombre de lignes modifiées, insérées ou supprimées en exécutant l'instruction Transact-SQL.

VisibleFieldCount

Obtient le nombre de champs dans SqlDataReader qui ne sont pas masqués.

Méthodes

Close()

Ferme l'objet SqlDataReader.

Close()

Ferme l'objet DbDataReader.

(Hérité de DbDataReader)
CloseAsync()

Ferme de façon asynchrone l’objet DbDataReader.

(Hérité de DbDataReader)
CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe DbDataReader.

(Hérité de DbDataReader)
Dispose(Boolean)

Fournit un moyen de lire un flux avant uniquement de lignes à partir d’une base de données SQL Server. Cette classe ne peut pas être héritée.

Dispose(Boolean)

Libère les ressources non managées utilisées par DbDataReader et libère éventuellement les ressources managées.

(Hérité de DbDataReader)
DisposeAsync()

Libère de façon asynchrone toutes les ressources utilisées par l’instance actuelle de la classe DbDataReader.

(Hérité de DbDataReader)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

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

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

GetByte(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un octet.

GetBytes(Int32, Int64, Byte[], Int32, Int32)

Lit un flux d’octets à partir du décalage de colonne spécifié dans la mémoire tampon sous la forme d’un tableau, en commençant à l’offset de la mémoire tampon donné.

GetChar(Int32)

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

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 sous la forme d’un tableau, en commençant à l’offset de mémoire tampon donné.

GetColumnSchema()

Obtient la collection de schéma de colonne en lecture seule.

GetColumnSchemaAsync(CancellationToken)

Il s'agit de la version asynchrone de GetColumnSchema(DbDataReader). Les fournisseurs doivent effectuer le remplacement avec une implémentation appropriée. Le cancellationToken peut éventuellement être respecté. L'implémentation par défaut appelle l'appel de méthode GetColumnSchema(DbDataReader) synchrone et retourne une tâche terminée. L'implémentation par défaut retourne une tâche annulée si un cancellationToken déjà annulé est passé. Les exceptions levées par GetColumnSchema(DbDataReader) sont communiquées via la propriété d'exception de tâche retournée.

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

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

GetData(Int32)

Retourne un lecteur de données imbriqué pour la colonne demandée.

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

Obtient une chaîne qui représente le type de données de la colonne spécifiée.

GetDateTime(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un objet DateTime.

GetDateTimeOffset(Int32)

Récupère la valeur de la colonne spécifiée sous la forme d'un objet DateTimeOffset.

GetDbDataReader(Int32)

Retourne un objet DbDataReader pour l'ordinal de colonne demandé qui peut être substitué par une implémentation spécifique au fournisseur.

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

Obtient la valeur de la colonne spécifiée sous la forme d'un objet Decimal.

GetDouble(Int32)

Obtient la valeur de la colonne spécifiée sous forme de nombre à virgule flottante double précision.

GetEnumerator()

Retourne un IEnumerator qui itère au sein de SqlDataReader.

GetFieldType(Int32)

Obtient le Type qui correspond au type de données de l'objet.

GetFieldValue<T>(Int32)

Obtient, de manière asynchrone, la valeur de la colonne spécifiée sous la forme d'un type. GetFieldValueAsync<T>(Int32, CancellationToken) est la version asynchrone de cette méthode.

GetFieldValue<T>(Int32)

Obtient la valeur de la colonne spécifiée comme type demandé.

(Hérité de DbDataReader)
GetFieldValueAsync<T>(Int32)

Obtient de manière asynchrone la valeur de la colonne spécifiée comme type demandé.

(Hérité de DbDataReader)
GetFieldValueAsync<T>(Int32, CancellationToken)

Obtient, de manière asynchrone, la valeur de la colonne spécifiée sous la forme d'un type. GetFieldValue<T>(Int32) est la version synchrone de cette méthode.

GetFieldValueAsync<T>(Int32, CancellationToken)

Obtient de manière asynchrone la valeur de la colonne spécifiée comme type demandé.

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

Obtient la valeur de la colonne spécifiée sous la forme d'un nombre à virgule flottante simple précision.

GetGuid(Int32)

Obtient la valeur de la colonne spécifiée sous forme d’identificateur global unique (GUID).

GetHashCode()

Fait office de fonction de hachage par défaut.

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

Obtient la valeur de la colonne spécifiée sous la forme d'un entier signé 16 bits.

GetInt32(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d’un entier signé 32 bits.

GetInt64(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un entier signé 64 bits.

GetLifetimeService()
Obsolète.

Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance.

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

Obtient le nom de la colonne spécifiée.

GetOrdinal(String)

Obtient le numéro de la colonne, en fonction du nom de la colonne.

GetProviderSpecificFieldType(Int32)

Obtient un Object qui est une représentation du type de champ spécifique au fournisseur sous-jacent.

GetProviderSpecificValue(Int32)

Obtient un Object qui est une représentation de la valeur sous-jacente spécifique au fournisseur.

GetProviderSpecificValues(Object[])

Obtient un tableau d'objets qui constituent une représentation des valeurs sous-jacentes spécifiques au fournisseur.

GetSchemaTable()

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

GetSchemaTable()

Retourne un DataTable qui décrit les métadonnées de colonne de DbDataReader. Retourne null si la commande exécutée n’a retourné aucun jeu de résultats, ou après NextResult() avoir retourné false.

(Hérité de DbDataReader)
GetSchemaTableAsync(CancellationToken)

Il s'agit de la version asynchrone de GetSchemaTable(). Les fournisseurs doivent effectuer le remplacement avec une implémentation appropriée. Le cancellationToken peut éventuellement être respecté. L'implémentation par défaut appelle l'appel de méthode GetSchemaTable() synchrone et retourne une tâche terminée. L'implémentation par défaut retourne une tâche annulée si un cancellationToken déjà annulé est passé. Les exceptions levées par GetSchemaTable() sont communiquées via la propriété d'exception de tâche retournée.

(Hérité de DbDataReader)
GetSqlBinary(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlBinary.

GetSqlBoolean(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlBoolean.

GetSqlByte(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlByte.

GetSqlBytes(Int32)

Obtient la valeur de la colonne spécifiée sous la forme de SqlBytes.

GetSqlChars(Int32)

Obtient la valeur de la colonne spécifiée sous la forme de SqlChars.

GetSqlDateTime(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlDateTime.

GetSqlDecimal(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlDecimal.

GetSqlDouble(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlDouble.

GetSqlGuid(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlGuid.

GetSqlInt16(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlInt16.

GetSqlInt32(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlInt32.

GetSqlInt64(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlInt64.

GetSqlMoney(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlMoney.

GetSqlSingle(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlSingle.

GetSqlString(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'un SqlString.

GetSqlValue(Int32)

Retourne la valeur de données de la colonne spécifiée en tant que type SQL Server.

GetSqlValues(Object[])

Remplit un tableau de Object qui contient les valeurs de toutes les colonnes de l'enregistrement, exprimées en tant que types SQL Server.

GetSqlXml(Int32)

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

GetStream(Int32)

Extrait le fichier binaire, l'image, le varbinary, le type défini par l'utilisateur et les types de données Variant sous forme d'un Stream.

GetStream(Int32)

Obtient un flux pour récupérer les données de la colonne spécifiée.

(Hérité de DbDataReader)
GetString(Int32)

Obtient la valeur de la colonne spécifiée sous la forme d'une chaîne.

GetTextReader(Int32)

Extrait les types de données Char, NChar, NText, NVarChar, text, varchar et Variant sous forme d'un TextReader.

GetTextReader(Int32)

Obtient un lecteur de texte pour récupérer les données de la colonne.

(Hérité de DbDataReader)
GetTimeSpan(Int32)

Récupère la valeur de la colonne spécifiée sous la forme d'un objet TimeSpan.

GetType()

Obtient le Type de l'instance actuelle.

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

Obtient la valeur de la colonne spécifiée dans son format natif.

GetValues(Object[])

Remplit un tableau d'objets avec les valeurs de colonne de la ligne en cours.

GetXmlReader(Int32)

Récupère les données de type XML sous forme d'un XmlReader.

InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

Détermine si le CommandBehavior spécifié correspond à celui du SqlDataReader.

IsDBNull(Int32)

Obtient une valeur qui indique si la colonne contient des valeurs inexistantes ou manquantes.

IsDBNullAsync(Int32)

Obtient de manière asynchrone une valeur qui indique si la colonne contient des valeurs inexistantes ou manquantes.

(Hérité de DbDataReader)
IsDBNullAsync(Int32, CancellationToken)

Version asynchrone de IsDBNull(Int32), qui obtient une valeur qui indique si la colonne contient des valeurs inexistantes ou manquantes.

Le jeton d'annulation peut être utilisé pour demander que l'opération soit abandonnée avant que le délai d'attente de commande s'écoule. Les exceptions seront signalées via l’objet Task retourné.

IsDBNullAsync(Int32, CancellationToken)

Obtient de manière asynchrone une valeur qui indique si la colonne contient des valeurs inexistantes ou manquantes.

(Hérité de DbDataReader)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l'objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
NextResult()

Avance le lecteur de données jusqu'au résultat suivant, lors de la lecture des résultats des instructions Transact-SQL par lot.

NextResultAsync()

Avance le lecteur de manière asynchrone jusqu’au résultat suivant lors de la lecture des résultats d’un lot d’instructions.

(Hérité de DbDataReader)
NextResultAsync(CancellationToken)

Version asynchrone de NextResult(), qui avance le lecteur de données jusqu’au résultat suivant, lors de la lecture des résultats des instructions Transact-SQL par lot.

Le jeton d'annulation peut être utilisé pour demander que l'opération soit abandonnée avant que le délai d'attente de commande s'écoule. Les exceptions seront signalées via l’objet Task retourné.

NextResultAsync(CancellationToken)

Avance le lecteur de manière asynchrone jusqu’au résultat suivant lors de la lecture des résultats d’un lot d’instructions.

(Hérité de DbDataReader)
Read()

Fait passer le SqlDataReader à l’enregistrement suivant.

ReadAsync()

Avance le lecteur de manière asynchrone jusqu’à l’enregistrement suivant d’un jeu de résultats.

(Hérité de DbDataReader)
ReadAsync(CancellationToken)

Version asynchrone de Read(), qui avance SqlDataReader jusqu'à l'enregistrement suivant.

Le jeton d'annulation peut être utilisé pour demander que l'opération soit abandonnée avant que le délai d'attente de commande s'écoule. Les exceptions seront signalées via l’objet Task retourné.

ReadAsync(CancellationToken)

Avance le lecteur de manière asynchrone jusqu’à l’enregistrement suivant d’un jeu de résultats.

(Hérité de DbDataReader)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

IDataReader.Close()

Pour obtenir une description de ce membre, consultez Close().

(Hérité de DbDataReader)
IDataReader.GetSchemaTable()

Pour obtenir une description de ce membre, consultez GetSchemaTable().

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

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

IDataRecord.GetData(Int32)

Pour obtenir une description de ce membre, consultez GetData(Int32).

(Hérité de DbDataReader)
IDisposable.Dispose()

Libère toutes les ressources utilisées par le lecteur de données.

IEnumerable.GetEnumerator()

Retourne un énumérateur qui peut être utilisé pour itérer au sein de la collection d'éléments.

Méthodes d’extension

CanGetColumnSchema(DbDataReader)

Obtient une valeur qui indique si un DbDataReader peut obtenir un schéma de colonne.

GetColumnSchema(DbDataReader)

Obtient le schéma de colonne (collection DbColumn) pour un DbDataReader.

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Voir aussi