Partager via


SqlDataReader Classe

Définition

Permet de lire un flux de lignes en avant uniquement à 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 class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
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
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
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, en l’écrivant dans la fenêtre de console. Le code ferme ensuite le SqlDataReader. La SqlConnection fermeture est automatiquement à la fin du using bloc de code.

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

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

Pendant l’utilisation SqlDataReader , l’associé SqlConnection est occupé à servir le SqlDataReader, et aucune autre opération ne peut être effectuée sur l’autre que la SqlConnection fermeture. C’est le cas jusqu’à ce que la Close méthode de l’objet SqlDataReader soit appelée. Par exemple, vous ne pouvez pas récupérer les paramètres de sortie tant qu’après l’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 par l’utilisateur du SqlDataReader. Toutefois, le comportement précis dépend du minutage.

IsClosed et RecordsAffected sont les seules propriétés que vous pouvez appeler après la SqlDataReader fermeture. Bien que la RecordsAffected propriété soit accessible pendant l’existence SqlDataReader , appelez toujours avant de renvoyer Close la valeur pour RecordsAffected garantir une valeur de retour précise.

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

Note

Pour des performances optimales, SqlDataReader évitez de créer des objets inutiles ou de créer des copies inutiles de données. Par conséquent, plusieurs appels à des méthodes telles que GetValue le retour d’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

Nom Description
Connection

Obtient l’associé SqlConnection au SqlDataReader.

Depth

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

FieldCount

Obtient le nombre de colonnes dans la ligne active.

HasRows

Obtient une valeur qui indique si les SqlDataReader lignes contiennent une ou plusieurs lignes.

IsClosed

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

Item[Int32]

Obtient la valeur de la colonne spécifiée dans son format natif en fonction de l’ordinal de 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 par l’exécution de l’instruction Transact-SQL.

VisibleFieldCount

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

Méthodes

Nom Description
Close()

Ferme l’objet SqlDataReader .

CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

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

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

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

(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 en tant que booléen.

GetByte(Int32)

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

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

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

GetChar(Int32)

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

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 commençant par le décalage de mémoire tampon donné.

GetData(Int32)

Retourne un IDataReader ordinal 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 représentant le type de données de la colonne spécifiée.

GetDateTime(Int32)

Obtient la valeur de la colonne spécifiée en tant qu’objet DateTime .

GetDateTimeOffset(Int32)

Récupère la valeur de la colonne spécifiée en tant qu’objet DateTimeOffset .

GetDbDataReader(Int32)

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

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

Obtient la valeur de la colonne spécifiée en tant qu’objet Decimal .

GetDouble(Int32)

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

GetEnumerator()

Retourne un itération qui effectue une IEnumerator itération dans le SqlDataReader.

GetFieldType(Int32)

Obtient le Type type de données de l’objet.

GetFieldValue<T>(Int32)

Obtient de façon synchrone la valeur de la colonne spécifiée en tant que type. GetFieldValueAsync<T>(Int32, CancellationToken) est la version asynchrone de cette méthode.

GetFieldValueAsync<T>(Int32, CancellationToken)

Obtient de façon asynchrone la valeur de la colonne spécifiée en tant que type. GetFieldValue<T>(Int32) est la version synchrone de cette méthode.

GetFieldValueAsync<T>(Int32)

Obtient de façon 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 en tant qu’identificateur global unique (GUID).

GetHashCode()

Sert 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 actuel 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 l’ordinal de colonne, en fonction du nom de la colonne.

GetProviderSpecificFieldType(Int32)

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

GetProviderSpecificValue(Int32)

Obtient une Object représentation de la valeur spécifique du fournisseur sous-jacent.

GetProviderSpecificValues(Object[])

Obtient un tableau d’objets qui sont une représentation des valeurs spécifiques du fournisseur sous-jacent.

GetSchemaTable()

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

GetSqlBinary(Int32)

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

GetSqlBoolean(Int32)

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

GetSqlByte(Int32)

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

GetSqlBytes(Int32)

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

GetSqlChars(Int32)

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

GetSqlDateTime(Int32)

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

GetSqlDecimal(Int32)

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

GetSqlDouble(Int32)

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

GetSqlGuid(Int32)

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

GetSqlInt16(Int32)

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

GetSqlInt32(Int32)

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

GetSqlInt64(Int32)

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

GetSqlMoney(Int32)

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

GetSqlSingle(Int32)

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

GetSqlString(Int32)

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

GetSqlValue(Int32)

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

GetSqlValues(Object[])

Remplit un tableau contenant Object 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 en tant que valeur XML.

GetStream(Int32)

Récupère les types de données binaires, image, varbinary, UDT et variant en tant que Stream.

GetString(Int32)

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

GetTextReader(Int32)

Récupère les types de données Char, NChar, NText, NVarChar, text, varChar et Variant en tant que TextReader.

GetTimeSpan(Int32)

Récupère la valeur de la colonne spécifiée en tant qu’objet TimeSpan .

GetType()

Obtient la 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 actuelle.

GetXmlReader(Int32)

Récupère les données de type XML en tant que 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 paramètre spécifié CommandBehavior correspond à celui du SqlDataReader .

IsDBNull(Int32)

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

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 l’expiration du délai d’expiration de la commande. Les exceptions sont signalées via l’objet Task retourné.

IsDBNullAsync(Int32)

Obtient de façon 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 Objectactuel.

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

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

(Hérité de MarshalByRefObject)
NextResult()

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

NextResultAsync()

Avance de façon asynchrone le lecteur vers le résultat suivant lors de la lecture des résultats d’un lot d’instructions.

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

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

Le jeton d’annulation peut être utilisé pour demander que l’opération soit abandonnée avant l’expiration du délai d’expiration de la commande. Les exceptions sont signalées via l’objet Task retourné.

Read()

Avance le SqlDataReader dossier suivant.

ReadAsync()

Avance de façon asynchrone le lecteur vers l’enregistrement suivant dans un jeu de résultats.

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

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

Le jeton d’annulation peut être utilisé pour demander que l’opération soit abandonnée avant l’expiration du délai d’expiration de la commande. Les exceptions sont signalées via l’objet Task retourné.

ToString()

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

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
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 ordinal 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 dans la collection d’éléments.

Méthodes d’extension

Nom Description
AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

CanGetColumnSchema(DbDataReader)

Obtient une valeur qui indique si un DbDataReader schéma de colonne peut être obtenu.

Cast<TResult>(IEnumerable)

Convertit les éléments d’un IEnumerable en type spécifié.

GetColumnSchema(DbDataReader)

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

OfType<TResult>(IEnumerable)

Filtre les éléments d’une IEnumerable en fonction d’un type spécifié.

S’applique à

Voir aussi