IDataRecord Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Consente l'accesso ai valori di colonna all'interno di ogni riga per un DataReader
e viene implementata dai provider di dati .NET che accedono a database relazionali.
public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
- Derivato
Esempio
Nell'esempio seguente vengono create istanze delle classi derivate, , SqlConnectionSqlCommande SqlDataReader. L'esempio legge i dati, scrivendoli nella console. Infine, l'esempio chiude , SqlDataReadere quindi .SqlConnection
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
Commenti
Le IDataReader interfacce e IDataRecord consentono a una classe che eredita di implementare una DataReader
classe . In questo modo è possibile leggere uno o più flussi forward-only dei set di risultati. Per altre informazioni sulle DataReader
classi, vedere Recupero di dati tramite un DataReader.
Un'applicazione non crea direttamente un'istanza dell'interfaccia IDataRecord , ma crea un'istanza di una classe che eredita IDataRecord. In genere, si ottiene un DataReader
oggetto tramite il ExecuteReader
metodo dell'oggetto Command
.
Le classi che ereditano IDataRecord devono implementare tutti i membri ereditati e in genere definiscono membri aggiuntivi per aggiungere funzionalità specifiche del provider.
I provider che implementano un DataReader
sono necessari per esporre i dati nei tipi CLR (Common Language Runtime). La coercizione dei tipi è definita per alcuni tipi non inclusi in CLR. È possibile accedere a questi valori come tipi alternativi conformi ai tipi CLR. Ad esempio, la tabella seguente elenca i mapping suggeriti dai tipi di dati OLE DB ai tipi CLR, con tipi alternativi tra parentesi.
Tipo OLE DB | Tipo 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 supportato |
DBTYPE_I1 | SByte |
DBTYPE_I2 | Int16 |
DBTYPE_I4 | Int32 |
DBTYPE_I8 | Int64 |
DBTYPE_IDISPATCH | object |
DBTYPE_IUNKNOWN | object |
DBTYPE_NULL | Dbnull |
DBTYPE_NUMERIC | Decimal |
DBTYPE_PROPVARIANT | object |
DBTYPE_R4 | Single |
DBTYPE_R8 | Double |
DBTYPE_STR | string |
DBTYPE_UDT | non supportato |
DBTYPE_UI1 | byte (Int16) |
DBTYPE_UI2 | UInt16 (Int32) |
DBTYPE_UI4 | UInt32 (Int64) |
DBTYPE_UI8 | UInt64 (decimale) |
DBTYPE_VARIANT | object |
DBTYPE_VARNUMERIC | non supportato |
DBTYPE_WSTR | string |
Proprietà
FieldCount |
Ottiene il numero di colonne nella riga corrente. |
Item[Int32] |
Ottiene la colonna che si trova in corrispondenza dell'indice specificato. |
Item[String] |
Ottiene la colonna con il nome specificato. |
Metodi
GetBoolean(Int32) |
Ottiene il valore della colonna specificata come valore Boolean. |
GetByte(Int32) |
Ottiene il valore dell'intero senza segno a 8 bit della colonna specificata. |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Legge un flusso di byte dall'offset di colonna specificato nel buffer come matrice, a partire dall'offset del buffer specificato. |
GetChar(Int32) |
Ottiene il valore del carattere della colonna specificata. |
GetChars(Int32, Int64, Char[], Int32, Int32) |
Legge un flusso di caratteri dall'offset di colonna specificato nel buffer come matrice, a partire dall'offset del buffer specificato. |
GetData(Int32) |
Restituisce IDataReader per l'ordinale di colonna specificato. |
GetDataTypeName(Int32) |
Ottiene le informazioni sul tipo di dati per il campo specificato. |
GetDateTime(Int32) |
Ottiene il valore dei dati di data e ora del campo specificato. |
GetDecimal(Int32) |
Ottiene il valore numerico con posizione fissa del campo specificato. |
GetDouble(Int32) |
Ottiene il numero a virgola mobile con precisione doppia del campo specificato. |
GetFieldType(Int32) |
Ottiene le informazioni relative a Type corrispondenti al tipo di Object che verrebbe restituito da GetValue(Int32). |
GetFloat(Int32) |
Ottiene il numero a virgola mobile con precisione singola del campo specificato. |
GetGuid(Int32) |
Restituisce il valore GUID del campo specificato. |
GetInt16(Int32) |
Ottiene il valore dell'intero con segno a 16 bit del campo specificato. |
GetInt32(Int32) |
Ottiene il valore dell'intero con segno a 32 bit del campo specificato. |
GetInt64(Int32) |
Ottiene il valore dell'intero con segno a 64 bit del campo specificato. |
GetName(Int32) |
Ottiene il nome del campo da trovare. |
GetOrdinal(String) |
Restituisce l'indice del campo denominato. |
GetString(Int32) |
Ottiene il valore stringa del campo specificato. |
GetValue(Int32) |
Restituisce il valore del campo specificato. |
GetValues(Object[]) |
Popola una matrice di oggetti con i valori della colonna del record corrente. |
IsDBNull(Int32) |
Indica se il campo specificato è impostato su Null. |