IDataRecord Gränssnitt

Definition

Ger åtkomst till kolumnvärdena i varje rad för en DataReader och implementeras av .NET dataprovidrar som har åtkomst till relationsdatabaser.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
Härledda

Exempel

I följande exempel skapas instanser av de härledda klasserna , SqlConnection, SqlCommandoch SqlDataReader. Exemplet läser igenom data och skriver ut dem till konsolen. Slutligen stänger SqlDataReaderexemplet , och sedan 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

Kommentarer

Gränssnitten IDataReader och IDataRecord gör det möjligt för en ärvande klass att implementera en DataReader klass. Detta ger ett sätt att läsa en eller flera strömmar med endast framåtriktade resultatuppsättningar. Mer information om DataReader klasser finns i Hämta data med hjälp av en DataReader.

Ett program skapar inte en instans av IDataRecord gränssnittet direkt, men skapar en instans av en klass som ärver IDataRecord. Vanligtvis gör du detta genom att hämta en DataReader via ExecuteReader -metoden för Command objektet.

Klasser som ärver IDataRecord måste implementera alla ärvda medlemmar och vanligtvis definiera ytterligare medlemmar för att lägga till providerspecifika funktioner.

Leverantörer som implementerar en DataReader måste exponera data i clr-typer (common language runtime). Typtvång definieras för vissa typer som inte ingår i CLR. Dessa värden kan kommas åt som alternativa typer som följer CLR-typer. I följande tabell visas till exempel föreslagna mappningar från OLE DB-datatyper till CLR-typer, med alternativa typer inom parenteser.

OLE DB-typ CLR-typ
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 noll
Typfel i databas (DBTYPE_ERROR) ExternalException
DBTYPE_FILETIME DateTime
DBTYPE_GUID GUID
DBTYPE_HCHAPTER stöds inte
DBTYPE_I1 SByte
DBTYPE_I2 Int16
DBTYPE_I4 Int32
DBTYPE_I8 Int64
DBTYPE_IDISPATCH object
DBTYPE_IUNKNOWN object
DBTYPE_NULL DBNull.Value
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT object
DBTYPE_R4 Single
DBTYPE_R8 Double
DBTYPE_STR string
DBTYPE_UDT stöds inte
DBTYPE_UI1 byte (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (decimal)
DBTYPE_VARIANT object
DBTYPE_VARNUMERIC stöds inte
DBTYPE_WSTR string

Egenskaper

Name Description
FieldCount

Hämtar antalet kolumner i den aktuella raden.

Item[Int32]

Hämtar kolumnen som finns i det angivna indexet.

Item[String]

Hämtar kolumnen med det angivna namnet.

Metoder

Name Description
GetBoolean(Int32)

Hämtar värdet för den angivna kolumnen som booleskt värde.

GetByte(Int32)

Hämtar det 8-bitars osignerade heltalsvärdet för den angivna kolumnen.

GetBytes(Int32, Int64, Byte[], Int32, Int32)

Läser en ström med byte från den angivna kolumnförskjutningen till bufferten som en matris, med början vid den angivna buffertförskjutningen.

GetChar(Int32)

Hämtar teckenvärdet för den angivna kolumnen.

GetChars(Int32, Int64, Char[], Int32, Int32)

Läser en dataström med tecken från den angivna kolumnförskjutningen till bufferten som en matris, med början vid den angivna buffertförskjutningen.

GetData(Int32)

Returnerar en IDataReader för den angivna kolumnordningen.

GetDataTypeName(Int32)

Hämtar datatypsinformationen för det angivna fältet.

GetDateTime(Int32)

Hämtar datavärdet för datum och tid för det angivna fältet.

GetDecimal(Int32)

Hämtar det numeriska värdet för fast position för det angivna fältet.

GetDouble(Int32)

Hämtar flyttal med dubbel precision för det angivna fältet.

GetFieldType(Int32)

Hämtar den Type information som motsvarar den typ av Object som skulle returneras från GetValue(Int32).

GetFloat(Int32)

Hämtar flyttal med enkel precision för det angivna fältet.

GetGuid(Int32)

Returnerar GUID-värdet för det angivna fältet.

GetInt16(Int32)

Hämtar det 16-bitars signerade heltalsvärdet för det angivna fältet.

GetInt32(Int32)

Hämtar det 32-bitars signerade heltalsvärdet för det angivna fältet.

GetInt64(Int32)

Hämtar det 64-bitars signerade heltalsvärdet för det angivna fältet.

GetName(Int32)

Hämtar namnet på fältet som ska hittas.

GetOrdinal(String)

Returnera indexet för det namngivna fältet.

GetString(Int32)

Hämtar strängvärdet för det angivna fältet.

GetValue(Int32)

Returnerar värdet för det angivna fältet.

GetValues(Object[])

Fyller i en matris med objekt med kolumnvärdena för den aktuella posten.

IsDBNull(Int32)

Returnera om det angivna fältet är inställt på null.

Gäller för