IDataReader Interface

Definitie

Biedt een middel om een of meer gegevensstromen met alleen-doorsturende resultatensets te lezen die zijn verkregen door een opdracht uit te voeren op een gegevensbron en wordt geïmplementeerd door .NET gegevensproviders die toegang hebben tot relationele databases.

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
Afgeleid
Implementeringen

Voorbeelden

In het volgende voorbeeld worden exemplaren van de afgeleide klassen, SqlConnection, SqlCommanden SqlDataReader. In het voorbeeld worden de gegevens gelezen en naar de console geschreven. Ten slotte sluit het voorbeeld de SqlDataReader, en vervolgens de 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

Opmerkingen

Met de IDataReader en IDataRecord interfaces kan een overnemende klasse een DataReader klasse implementeren. Dit biedt een manier om een of meer forward-only streams met resultatensets te lezen. Zie Gegevens ophalen met behulp van een DataReader voor meer informatie over DataReader klassen.

Een toepassing maakt geen exemplaar van de IDataReader interface rechtstreeks, maar maakt een exemplaar van een klasse die wordt overgenomen IDataReader.

Klassen die overnemen IDataReader , moeten de overgenomen leden implementeren en definiëren doorgaans extra leden om providerspecifieke functionaliteit toe te voegen.

Wijzigingen die zijn aangebracht in een resultatenset door een ander proces of een andere thread terwijl gegevens worden gelezen, zijn mogelijk zichtbaar voor de gebruiker van een klasse die een IDataReaderimplementeert. Het precieze gedrag is echter zowel provider- als timingafhankelijk.

Notities voor uitvoerders

Als u consistentie tussen .NET Framework-gegevensproviders wilt bevorderen, geeft u de overnemende klasse een naam in de vorm Prv Command, waarbij Prv het uniforme voorvoegsel is dat wordt gegeven aan alle klassen in een specifieke .NET Framework-naamruimte voor de gegevensprovider. Is bijvoorbeeld Sql het voorvoegsel van de SqlDataAdapter klasse in de System.Data.SqlClient naamruimte.

Gebruikers maken geen exemplaar van een DataReader klasse rechtstreeks. In plaats daarvan verkrijgen ze het DataReader exemplaar via de ExecuteReader methode van het Command object. Daarom moet u constructors markeren DataReader als intern.

Eigenschappen

Name Description
Depth

Hiermee wordt een waarde opgehaald die de diepte van nesten voor de huidige rij aangeeft.

FieldCount

Hiermee haalt u het aantal kolommen in de huidige rij op.

(Overgenomen van IDataRecord)
IsClosed

Hiermee wordt een waarde opgehaald die aangeeft of de gegevenslezer is gesloten.

Item[Int32]

Hiermee haalt u de kolom op die zich in de opgegeven index bevindt.

(Overgenomen van IDataRecord)
Item[String]

Hiermee haalt u de kolom op met de opgegeven naam.

(Overgenomen van IDataRecord)
RecordsAffected

Hiermee haalt u het aantal rijen op dat is gewijzigd, ingevoegd of verwijderd door de SQL-instructie uit te voeren.

Methoden

Name Description
Close()

Hiermee sluit u het IDataReader object.

Dispose()

Voert door de toepassing gedefinieerde taken uit die zijn gekoppeld aan het vrijmaken, vrijgeven of opnieuw instellen van onbeheerde resources.

(Overgenomen van IDisposable)
GetBoolean(Int32)

Hiermee haalt u de waarde van de opgegeven kolom op als een Booleaanse waarde.

(Overgenomen van IDataRecord)
GetByte(Int32)

Hiermee wordt de 8-bits niet-ondertekende gehele waarde van de opgegeven kolom opgehaald.

(Overgenomen van IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Leest een stroom van bytes van de opgegeven kolom offset in de buffer als een matrix, beginnend bij de opgegeven buffer offset.

(Overgenomen van IDataRecord)
GetChar(Int32)

Hiermee haalt u de tekenwaarde van de opgegeven kolom op.

(Overgenomen van IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Hiermee leest u een stroom tekens van de opgegeven kolom offset in de buffer als matrix, te beginnen bij de opgegeven buffer offset.

(Overgenomen van IDataRecord)
GetData(Int32)

Retourneert een IDataReader voor de opgegeven kolomordinaal.

(Overgenomen van IDataRecord)
GetDataTypeName(Int32)

Hiermee haalt u de gegevenstypegegevens voor het opgegeven veld op.

(Overgenomen van IDataRecord)
GetDateTime(Int32)

Hiermee haalt u de datum- en tijdgegevenswaarde van het opgegeven veld op.

(Overgenomen van IDataRecord)
GetDecimal(Int32)

Hiermee haalt u de numerieke waarde van de vaste positie van het opgegeven veld op.

(Overgenomen van IDataRecord)
GetDouble(Int32)

Hiermee wordt het drijvende kommanummer met dubbele precisie van het opgegeven veld opgehaald.

(Overgenomen van IDataRecord)
GetFieldType(Int32)

Hiermee haalt u de Type informatie op die overeenkomt met het type Object dat wordt geretourneerd van GetValue(Int32).

(Overgenomen van IDataRecord)
GetFloat(Int32)

Hiermee haalt u het drijvende kommanummer van één precisie van het opgegeven veld op.

(Overgenomen van IDataRecord)
GetGuid(Int32)

Retourneert de GUID-waarde van het opgegeven veld.

(Overgenomen van IDataRecord)
GetInt16(Int32)

Hiermee wordt de 16-bits geheel getalwaarde van het opgegeven veld opgehaald.

(Overgenomen van IDataRecord)
GetInt32(Int32)

Hiermee wordt de 32-bits geheel getalwaarde van het opgegeven veld opgehaald.

(Overgenomen van IDataRecord)
GetInt64(Int32)

Hiermee wordt de 64-bits geheel getalwaarde van het opgegeven veld opgehaald.

(Overgenomen van IDataRecord)
GetName(Int32)

Hiermee haalt u de naam op van het veld dat moet worden gevonden.

(Overgenomen van IDataRecord)
GetOrdinal(String)

Retourneert de index van het benoemde veld.

(Overgenomen van IDataRecord)
GetSchemaTable()

Retourneert een DataTable die de kolommetagegevens van de IDataReader.

Retourneert null als de uitgevoerde opdracht geen resultatenset heeft geretourneerd of nadat NextResult() deze is geretourneerd false.

GetString(Int32)

Hiermee haalt u de tekenreekswaarde van het opgegeven veld op.

(Overgenomen van IDataRecord)
GetValue(Int32)

Retourneert de waarde van het opgegeven veld.

(Overgenomen van IDataRecord)
GetValues(Object[])

Hiermee wordt een matrix met objecten gevuld met de kolomwaarden van de huidige record.

(Overgenomen van IDataRecord)
IsDBNull(Int32)

Geef als resultaat of het opgegeven veld is ingesteld op null.

(Overgenomen van IDataRecord)
NextResult()

Hiermee wordt de gegevenslezer naar het volgende resultaat doorgevroegd bij het lezen van de resultaten van batch SQL-instructies.

Read()

Hiermee gaat u naar IDataReader de volgende record.

Van toepassing op