Condividi tramite


IDataRecord Interfaccia

Definizione

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 DataReaderdati 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.

Si applica a