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, scrivendolo nella console. Infine, l'esempio chiude l'oggetto SqlDataReadere quindi .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
Commenti
Le IDataReader interfacce e IDataRecord consentono a una classe di eredita di implementare una DataReader
classe. In questo modo è possibile leggere uno o più flussi di risultati di tipo forward-only. Per altre informazioni sulle classi, vedere Recupero di DataReader
dati tramite un dataReader.
Un'applicazione non crea direttamente un'istanza dell'interfaccia, ma crea un'istanza IDataRecord di una classe che eredita IDataRecord. In genere, si ottiene un DataReader
tramite il ExecuteReader
metodo dell'oggetto Command
.
Le classi che ereditano devono implementare IDataRecord tutti i membri ereditati e in genere definiscono altri membri per aggiungere funzionalità specifiche del provider.
I provider che implementano un DataReader
oggetto sono necessari per esporre i dati nei tipi CLR (Common Language Runtime). La coercizione dei tipi è definita per alcuni tipi non inclusi in CLR. Questi valori possono essere accessibili 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 nelle 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. |