IDataRecord 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.
Donne accès aux valeurs de colonnes de chaque ligne d’un DataReader
; est implémenté par les fournisseurs de données .NET qui accèdent aux bases de données relationnelles.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Dérivé
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. Cela 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 IDataRecord directement, mais crée un instance d’une classe qui hérite IDataRecord. En règle générale, vous obtenez un DataReader
via la ExecuteReader
méthode de l’objet Command
.
Les classes qui héritent IDataRecord doivent implémenter tous 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 fournisseurs implémentant un DataReader
sont requis pour exposer des données dans des types CLR (Common Language Runtime). La contrainte de type est définie pour certains types non inclus dans le CLR. Ces valeurs sont accessibles en tant que types alternatifs conformes aux types CLR. Par exemple, le tableau suivant répertorie les mappages suggérés des types de données OLE DB aux types CLR, avec d’autres types entre parenthèses.
Type OLE DB | Type CLR |
---|---|
DBTYPE_BOOL | Int16 |
DBTYPE_BSTR | string |
DBTYPE_BYTES | byte[] |
DBTYPE_CY | Decimal |
DBTYPE_DATE | DateTime |
DBTYPE_DBDATE | DateTime |
DBTYPE_DBTIME | DateTime |
DBTYPE_DBTIMESTAMP | DateTime |
DBTYPE_DECIMAL | Decimal |
DBTYPE_EMPTY | null |
DBTYPE_ERROR | ExternalException |
DBTYPE_FILETIME | DateTime |
DBTYPE_GUID | Guid |
DBTYPE_HCHAPTER | non pris en charge |
DBTYPE_I1 | SByte |
DBTYPE_I2 | Int16 |
DBTYPE_I4 | Int32 |
DBTYPE_I8 | Int64 |
DBTYPE_IDISPATCH | object |
DBTYPE_IUNKNOWN | object |
DBTYPE_NULL | DBNull.Value |
DBTYPE_NUMERIC | Decimal |
DBTYPE_PROPVARIANT | object |
DBTYPE_R4 | Unique |
DBTYPE_R8 | Double |
DBTYPE_STR | string |
DBTYPE_UDT | non pris en charge |
DBTYPE_UI1 | octet (Int16) |
DBTYPE_UI2 | UInt16 (Int32) |
DBTYPE_UI4 | UInt32 (Int64) |
DBTYPE_UI8 | UInt64 (décimal) |
DBTYPE_VARIANT | object |
DBTYPE_VARNUMERIC | non pris en charge |
DBTYPE_WSTR | string |
Propriétés
FieldCount |
Obtient le nombre de colonnes figurant dans la ligne actuelle. |
Item[Int32] |
Obtient la colonne située à l'index spécifié. |
Item[String] |
Récupère la colonne portant le nom spécifié. |
Méthodes
GetBoolean(Int32) |
Obtient la valeur de la colonne spécifiée sous la forme d'une valeur Boolean. |
GetByte(Int32) |
Récupère la valeur de l’entier signé 8 bits de la colonne spécifiée. |
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é. |
GetChar(Int32) |
Obtient la valeur de caractère de la colonne spécifiée. |
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é. |
GetData(Int32) |
Retourne un IDataReader pour le numéro de colonne spécifié. |
GetDataTypeName(Int32) |
Obtient les informations sur le type de données pour le champ spécifié. |
GetDateTime(Int32) |
Obtient la valeur des données de date et d’heure du champ spécifié. |
GetDecimal(Int32) |
Obtient la valeur numérique à position fixe du champ spécifié. |
GetDouble(Int32) |
Obtient le nombre à virgule flottante double précision du champ spécifié. |
GetFieldType(Int32) |
Obtient les informations Type correspondant au type de Object qui doit être retourné à partir de GetValue(Int32). |
GetFloat(Int32) |
Obtient le nombre à virgule flottante simple précision du champ spécifié. |
GetGuid(Int32) |
Retourne la valeur GUID du champ spécifié. |
GetInt16(Int32) |
Obtient la valeur de l’entier signé 16 bits du champ spécifié. |
GetInt32(Int32) |
Obtient la valeur de l’entier signé 32 bits du champ spécifié. |
GetInt64(Int32) |
Récupère la valeur de l’entier signé 64 bits du champ spécifié. |
GetName(Int32) |
Obtient le nom du champs à rechercher. |
GetOrdinal(String) |
Retourne l’index du champ nommé. |
GetString(Int32) |
Obtient la valeur de chaîne du champ spécifié. |
GetValue(Int32) |
Retourne la valeur du champ spécifié. |
GetValues(Object[]) |
Remplit un tableau d’objets avec les valeurs de colonne de l’enregistrement actif. |
IsDBNull(Int32) |
Retourne une valeur indiquant si le champ spécifié a la valeur null. |