IDataRecord Interfaccia

Definizione

Fornisce l'accesso ai valori di colonna all'interno di ogni riga per un DataReaderoggetto e viene implementato dai provider di dati .NET che accedono ai 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, SqlConnection, SqlCommande SqlDataReader. L'esempio legge i dati, scrivendoli nella console. Infine, l'esempio chiude e SqlDataReaderquindi .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 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, ma crea un'istanza IDataRecord di una classe che eredita IDataRecord. In genere, è possibile eseguire questa operazione ottenendo 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 in 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, nella tabella seguente sono elencati 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 Decimale
DBTYPE_DATE Data e ora
DBTYPE_DBDATE Data e ora
DBTYPE_DBTIME Data e ora
DBTYPE_DBTIMESTAMP Data e ora
DBTYPE_DECIMAL Decimale
DBTYPE_EMPTY Null
Errore di tipo database (DBTYPE_ERROR) EccezioneEsterna
DBTYPE_FILETIME Data e ora
DBTYPE_GUID (identificatore globale univoco) 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 Decimale
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à

Nome Descrizione
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

Nome Descrizione
GetBoolean(Int32)

Ottiene il valore della colonna specificata come valore booleano.

GetByte(Int32)

Ottiene il valore 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 un oggetto 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 a posizione fissa del campo specificato.

GetDouble(Int32)

Ottiene il numero a virgola mobile e precisione doppia del campo specificato.

GetFieldType(Int32)

Ottiene le Type informazioni corrispondenti al tipo di Object che verrebbe restituito da GetValue(Int32).

GetFloat(Int32)

Ottiene il numero a virgola mobile e precisione singola del campo specificato.

GetGuid(Int32)

Restituisce il valore GUID del campo specificato.

GetInt16(Int32)

Ottiene il valore intero con segno a 16 bit del campo specificato.

GetInt32(Int32)

Ottiene il valore intero con segno a 32 bit del campo specificato.

GetInt64(Int32)

Ottiene il valore 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 di colonna del record corrente.

IsDBNull(Int32)

Restituisce un valore che indica se il campo specificato è impostato su Null.

Si applica a