IDataReader Interface
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 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 |
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. |