SqlDataReader Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- Héritage
- Héritage
- 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 |
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 |
GetProviderSpecificValue(Int32) |
Obtient un |
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 |
GetSchemaTableAsync(CancellationToken) |
Il s'agit de la version asynchrone de GetSchemaTable().
Les fournisseurs doivent effectuer le remplacement avec une implémentation appropriée.
Le |
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. |