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.
Fournit l’accès aux valeurs de colonne dans chaque ligne d’un DataReader, et 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, en l’écrivant dans la console. Enfin, l’exemple ferme , SqlDataReaderpuis 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 permettent IDataRecord à une classe héritée d’implémenter une DataReader classe. Cela permet de lire un ou plusieurs flux vers l’avant uniquement des 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 directement une instance de l’interface IDataRecord , mais crée une instance d’une classe qui hérite IDataRecord. En règle générale, vous effectuez cette opération en obtenant une DataReader par le biais de la ExecuteReader méthode de l’objet Command .
Les classes qui héritent IDataRecord doivent implémenter tous les membres hérités et définissent généralement des membres supplémentaires pour ajouter des fonctionnalités spécifiques au fournisseur.
Les fournisseurs implémentant un DataReader sont nécessaires pour exposer des données dans des types CLR (Common Language Runtime). Le forçage de type est défini 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 | Décimal |
| DBTYPE_DATE | DateHeure |
| DBTYPE_DBDATE | DateHeure |
| DBTYPE_DBTIME | DateHeure |
| DBTYPE_DBTIMESTAMP | DateHeure |
| DBTYPE_DECIMAL | Décimal |
| DBTYPE_EMPTY | zéro |
| DBTYPE_ERROR | ExternalException |
| DBTYPE_FILETIME | DateHeure |
| DBTYPE_GUID | GUID |
| DBTYPE_HCHAPTER | non pris en charge |
| DBTYPE_I1 | SByte |
| DBTYPE_I2 | Int16 |
| DBTYPE_I4 | Int32 |
| DBTYPE_I8 | Int64 |
| DBTYPE_IDISPATCH | Objet |
| DBTYPE_IUNKNOWN | Objet |
| DBTYPE_NULL | DBNull.Value |
| DBTYPE_NUMERIC | Décimal |
| DBTYPE_PROPVARIANT | Objet |
| DBTYPE_R4 | Célibataire |
| DBTYPE_R8 | Double |
| DBTYPE_STR (type de chaîne de caractères DB) | 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 | Objet |
| DBTYPE_VARNUMERIC | non pris en charge |
| DBTYPE_WSTR | string |
Propriétés
| Nom | Description |
|---|---|
| FieldCount |
Obtient le nombre de colonnes dans la ligne active. |
| Item[Int32] |
Obtient la colonne située à l’index spécifié. |
| Item[String] |
Obtient la colonne portant le nom spécifié. |
Méthodes
| Nom | Description |
|---|---|
| GetBoolean(Int32) |
Obtient la valeur de la colonne spécifiée en tant que booléen. |
| GetByte(Int32) |
Obtient la valeur entière non signée 8 bits de la colonne spécifiée. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Lit un flux d’octets du décalage de colonne spécifié dans la mémoire tampon en tant que tableau, en commençant par le décalage 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 du décalage de colonne spécifié dans la mémoire tampon en tant que tableau, en commençant par le décalage de mémoire tampon donné. |
| GetData(Int32) |
Retourne un IDataReader ordinal de colonne spécifié. |
| GetDataTypeName(Int32) |
Obtient les informations de 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 de position fixe du champ spécifié. |
| GetDouble(Int32) |
Obtient le nombre à virgule flottante double précision du champ spécifié. |
| GetFieldType(Int32) |
Obtient les Type informations correspondant au type de Object ce qui serait retourné par GetValue(Int32). |
| GetFloat(Int32) |
Obtient le numéro à virgule flottante simple précision du champ spécifié. |
| GetGuid(Int32) |
Retourne la valeur GUID du champ spécifié. |
| GetInt16(Int32) |
Obtient la valeur entière signée 16 bits du champ spécifié. |
| GetInt32(Int32) |
Obtient la valeur entière signée 32 bits du champ spécifié. |
| GetInt64(Int32) |
Obtient la valeur entière signée 64 bits du champ spécifié. |
| GetName(Int32) |
Obtient le nom du champ à 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 si le champ spécifié a la valeur Null. |