IDataRecord Interfaccia

Definizione

Fornisce accesso ai valori di colonna all'interno di ogni riga per un DataReader e viene implementata dai provider di dati .NET Framework che accedono a database relazionali.Provides access to the column values within each row for a DataReader, and is implemented by .NET Framework data providers that access relational databases.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Derivato

Esempi

Nell'esempio seguente vengono create istanze delle classi derivate, SqlConnection, SqlCommande SqlDataReader.The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. L'esempio legge i dati e li scrive nella console.The example reads through the data, writing it out to the console. Infine, l'esempio chiude il SqlDataReadere quindi l'SqlConnection.Finally, the example closes the SqlDataReader, and then the 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 record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[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 interfacce IDataReader e IDataRecord consentono a una classe che eredita di implementare una classe di DataReader.The IDataReader and IDataRecord interfaces enable an inheriting class to implement a DataReader class. Questo consente di leggere uno o più flussi di set di risultati in modalità di sola trasmissione.This provides a way of reading one or more forward-only streams of result sets. Per ulteriori informazioni sulle classi DataReader, vedere recupero di dati tramite un oggetto DataReader.For more information about DataReader classes, see Retrieving Data Using a DataReader.

Un'applicazione non crea direttamente un'istanza dell'interfaccia IDataRecord, ma crea un'istanza di una classe che eredita IDataRecord.An application does not create an instance of the IDataRecord interface directly, but creates an instance of a class that inherits IDataRecord. Questa operazione viene in genere eseguita ottenendo un DataReader tramite il metodo ExecuteReader dell'oggetto Command.Typically, you do this by obtaining a DataReader through the ExecuteReader method of the Command object.

Le classi che ereditano IDataRecord devono implementare tutti i membri ereditati e in genere definiscono membri aggiuntivi per aggiungere funzionalità specifiche del provider.Classes that inherit IDataRecord must implement all inherited members, and typically define additional members to add provider-specific functionality.

I provider che implementano un DataReader sono necessari per esporre i dati nei tipi Common Language Runtime (CLR).Providers implementing a DataReader are required to expose data in common language runtime (CLR) types. Per alcuni tipi non inclusi in CLR è definita la coercizione dei tipi.Type coercion is defined for some types not included in the CLR. È possibile accedere a questi valori come tipi alternativi conformi ai tipi CLR.These values may be accessed as alternative types that comply with CLR types. Ad esempio, nella tabella seguente sono elencati i mapping suggeriti da OLE DB tipi di dati a tipi CLR, con tipi alternativi tra parentesi.As an example, the following table lists suggested mappings from OLE DB data types to CLR types, with alternative types in parentheses.

Tipo OLE DBOLE DB type Tipo CLRCLR type
DBTYPE_BOOLDBTYPE_BOOL Int16Int16
DBTYPE_BSTRDBTYPE_BSTR stringstring
DBTYPE_BYTESDBTYPE_BYTES byte[]byte[]
DBTYPE_CYDBTYPE_CY DecimalDecimal
DBTYPE_DATEDBTYPE_DATE DateTimeDateTime
DBTYPE_DBDATEDBTYPE_DBDATE DateTimeDateTime
DBTYPE_DBTIMEDBTYPE_DBTIME DateTimeDateTime
DBTYPE_DBTIMESTAMPDBTYPE_DBTIMESTAMP DateTimeDateTime
DBTYPE_DECIMALDBTYPE_DECIMAL DecimalDecimal
DBTYPE_EMPTYDBTYPE_EMPTY nullnull
DBTYPE_ERRORDBTYPE_ERROR ExternalExceptionExternalException
DBTYPE_FILETIMEDBTYPE_FILETIME DateTimeDateTime
DBTYPE_GUIDDBTYPE_GUID GuidGuid
DBTYPE_HCHAPTERDBTYPE_HCHAPTER Non supportatonot supported
DBTYPE_I1DBTYPE_I1 SByteSByte
DBTYPE_I2DBTYPE_I2 Int16Int16
DBTYPE_I4DBTYPE_I4 Int32Int32
DBTYPE_I8DBTYPE_I8 Int64Int64
DBTYPE_IDISPATCHDBTYPE_IDISPATCH objectobject
DBTYPE_IUNKNOWNDBTYPE_IUNKNOWN objectobject
DBTYPE_NULLDBTYPE_NULL DBNull.ValueDBNull.Value
DBTYPE_NUMERICDBTYPE_NUMERIC DecimalDecimal
DBTYPE_PROPVARIANTDBTYPE_PROPVARIANT objectobject
DBTYPE_R4DBTYPE_R4 SingleSingle
DBTYPE_R8DBTYPE_R8 DoubleDouble
DBTYPE_STRDBTYPE_STR stringstring
DBTYPE_UDTDBTYPE_UDT Non supportatonot supported
DBTYPE_UI1DBTYPE_UI1 byte (Int16)byte (Int16)
DBTYPE_UI2DBTYPE_UI2 UInt16 (Int32)UInt16 (Int32)
DBTYPE_UI4DBTYPE_UI4 UInt32 (Int64)UInt32 (Int64)
DBTYPE_UI8DBTYPE_UI8 UInt64 (decimale)UInt64 (Decimal)
DBTYPE_VARIANTDBTYPE_VARIANT objectobject
DBTYPE_VARNUMERICDBTYPE_VARNUMERIC Non supportatonot supported
DBTYPE_WSTRDBTYPE_WSTR stringstring

Proprietà

FieldCount

Ottiene il numero di colonne nella riga corrente.Gets the number of columns in the current row.

Item[Int32]

Ottiene la colonna che si trova in corrispondenza dell'indice specificato.Gets the column located at the specified index.

Item[String]

Ottiene la colonna con il nome specificato.Gets the column with the specified name.

Metodi

GetBoolean(Int32)

Ottiene il valore della colonna specificata come valore Boolean.Gets the value of the specified column as a Boolean.

GetByte(Int32)

Ottiene il valore dell'intero senza segno a 8 bit della colonna specificata.Gets the 8-bit unsigned integer value of the specified column.

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.Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetChar(Int32)

Ottiene il valore del carattere della colonna specificata.Gets the character value of the specified column.

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.Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetData(Int32)

Restituisce IDataReader per l'ordinale di colonna specificato.Returns an IDataReader for the specified column ordinal.

GetDataTypeName(Int32)

Ottiene le informazioni sul tipo di dati per il campo specificato.Gets the data type information for the specified field.

GetDateTime(Int32)

Ottiene il valore dei dati di data e ora del campo specificato.Gets the date and time data value of the specified field.

GetDecimal(Int32)

Ottiene il valore numerico con posizione fissa del campo specificato.Gets the fixed-position numeric value of the specified field.

GetDouble(Int32)

Ottiene il numero a virgola mobile con precisione doppia del campo specificato.Gets the double-precision floating point number of the specified field.

GetFieldType(Int32)

Ottiene le informazioni relative a Type corrispondenti al tipo di Object che verrebbe restituito da GetValue(Int32).Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

GetFloat(Int32)

Ottiene il numero a virgola mobile con precisione singola del campo specificato.Gets the single-precision floating point number of the specified field.

GetGuid(Int32)

Restituisce il valore GUID del campo specificato.Returns the GUID value of the specified field.

GetInt16(Int32)

Ottiene il valore dell'intero con segno a 16 bit del campo specificato.Gets the 16-bit signed integer value of the specified field.

GetInt32(Int32)

Ottiene il valore dell'intero con segno a 32 bit del campo specificato.Gets the 32-bit signed integer value of the specified field.

GetInt64(Int32)

Ottiene il valore dell'intero con segno a 64 bit del campo specificato.Gets the 64-bit signed integer value of the specified field.

GetName(Int32)

Ottiene il nome del campo da trovare.Gets the name for the field to find.

GetOrdinal(String)

Restituisce l'indice del campo denominato.Return the index of the named field.

GetString(Int32)

Ottiene il valore stringa del campo specificato.Gets the string value of the specified field.

GetValue(Int32)

Restituisce il valore del campo specificato.Return the value of the specified field.

GetValues(Object[])

Popola una matrice di oggetti con i valori della colonna del record corrente.Populates an array of objects with the column values of the current record.

IsDBNull(Int32)

Indica se il campo specificato è impostato su Null.Return whether the specified field is set to null.

Si applica a