IDataReader Gränssnitt

Definition

Ger ett sätt att läsa en eller flera dataströmmar med endast framåtriktade resultatuppsättningar som hämtas genom att köra ett kommando på en datakälla och implementeras av .NET dataproviders som har åtkomst till relationsdatabaser.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
Public Interface IDataReader
Implements IDataRecord, IDisposable
Härledda
Implementeringar

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 tillåter att en ärvande klass implementerar en DataReader klass, vilket ger ett sätt att läsa en eller flera framåtriktade strömmar av 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 IDataReader gränssnittet direkt, men skapar en instans av en klass som ärver IDataReader.

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

Ändringar som görs i en resultatuppsättning av en annan process eller tråd medan data läss kan vara synliga för användaren av en klass som implementerar en IDataReader. Det exakta beteendet är dock både provider- och tidsberoende.

Anteckningar till implementerare

För att främja konsekvens mellan .NET Framework-dataprovidrar namnger du ärvningsklassen i formuläret Prv Kommando där Prv är det enhetliga prefixet som ges till alla klasser i ett specifikt .NET Framework-dataprovidernamnområde. Är till exempel Sql prefixet för SqlDataAdapter klassen i System.Data.SqlClient namnområdet.

Användare skapar inte en instans av en DataReader klass direkt. I stället hämtar de instansen DataReaderExecuteReader via -metoden för Command objektet. Därför bör du markera DataReader konstruktorer som interna.

Egenskaper

Name Description
Depth

Hämtar ett värde som anger djupet i kapslingen för den aktuella raden.

FieldCount

Hämtar antalet kolumner i den aktuella raden.

(Ärvd från IDataRecord)
IsClosed

Hämtar ett värde som anger om dataläsaren är stängd.

Item[Int32]

Hämtar kolumnen som finns i det angivna indexet.

(Ärvd från IDataRecord)
Item[String]

Hämtar kolumnen med det angivna namnet.

(Ärvd från IDataRecord)
RecordsAffected

Hämtar antalet rader som har ändrats, infogats eller tagits bort genom körning av SQL-instruktionen.

Metoder

Name Description
Close()

Stänger objektet IDataReader .

Dispose()

Utför programdefinierade uppgifter som är associerade med att frigöra, frigöra eller återställa ohanterade resurser.

(Ärvd från IDisposable)
GetBoolean(Int32)

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

(Ärvd från IDataRecord)
GetByte(Int32)

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

(Ärvd från IDataRecord)
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.

(Ärvd från IDataRecord)
GetChar(Int32)

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

(Ärvd från IDataRecord)
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.

(Ärvd från IDataRecord)
GetData(Int32)

Returnerar en IDataReader för den angivna kolumnordningen.

(Ärvd från IDataRecord)
GetDataTypeName(Int32)

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

(Ärvd från IDataRecord)
GetDateTime(Int32)

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

(Ärvd från IDataRecord)
GetDecimal(Int32)

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

(Ärvd från IDataRecord)
GetDouble(Int32)

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

(Ärvd från IDataRecord)
GetFieldType(Int32)

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

(Ärvd från IDataRecord)
GetFloat(Int32)

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

(Ärvd från IDataRecord)
GetGuid(Int32)

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

(Ärvd från IDataRecord)
GetInt16(Int32)

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

(Ärvd från IDataRecord)
GetInt32(Int32)

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

(Ärvd från IDataRecord)
GetInt64(Int32)

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

(Ärvd från IDataRecord)
GetName(Int32)

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

(Ärvd från IDataRecord)
GetOrdinal(String)

Returnera indexet för det namngivna fältet.

(Ärvd från IDataRecord)
GetSchemaTable()

Returnerar en DataTable som beskriver kolumnmetadata för IDataReader.

Returnerar null om det körda kommandot inte returnerade någon resultatuppsättning eller efter NextResult() returnerar false.

GetString(Int32)

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

(Ärvd från IDataRecord)
GetValue(Int32)

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

(Ärvd från IDataRecord)
GetValues(Object[])

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

(Ärvd från IDataRecord)
IsDBNull(Int32)

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

(Ärvd från IDataRecord)
NextResult()

Avancerar dataläsaren till nästa resultat när du läser resultatet av SQL-batchinstruktioner.

Read()

IDataReader Går vidare till nästa post.

Gäller för