Share via


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 : System::Data::Common::DbDataReader, IDisposable, System::Data::Common::IDbColumnSchemaGenerator
public ref class SqlDataReader : System::Data::Common::DbDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable, System.Data.Common.IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDbColumnSchemaGenerator
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDbColumnSchemaGenerator
    interface IDataReader
    interface IDataRecord
    interface IDisposable
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator, IDisposable
Public Class SqlDataReader
Inherits DbDataReader
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 Microsoft.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]));
    }

}

Remarques

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

Lorsque 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 précise.

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 qu’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 renvoyer 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.

SensitivityClassification

Obtient les SensitivityClassification informations avec .SqlDataReader

VisibleFieldCount

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

Méthodes

Close()

Ferme l'objet SqlDataReader.

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.

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.

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.

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.

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.

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).

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.

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.

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.

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.

GetTimeSpan(Int32)

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

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.

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, 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é.

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(CancellationToken)

Version asynchrone de NextResult(), qui avance le lecteur de données vers le résultat suivant, lors de la lecture des résultats d’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é.

Read()

Fait passer le SqlDataReader à l’enregistrement suivant.

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é.

Implémentations d’interfaces explicites

IDataRecord.GetData(Int32)

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

S’applique à