IDataReader Interfész

Definíció

Lehetővé teszi egy vagy több, egy adatforráson végrehajtott parancs végrehajtásával kapott eredményhalmazok egy vagy több csak továbbítható adatfolyamának olvasását, és .NET relációs adatbázisokhoz hozzáférő adatszolgáltatók implementálják.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
Származtatott
Megvalósítás

Példák

Az alábbi példa a származtatott osztályok példányait hozza létre, SqlConnectionSqlCommandés SqlDataReader. A példa végigolvassa az adatokat, és kiírja a konzolra. Végül a példa bezárja a SqlDataReader, majd a 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

Megjegyzések

Az IDataReader és IDataRecord az interfészek lehetővé teszik az öröklő osztály számára, hogy egy osztályt DataReader implementáljon, amely lehetővé teszi egy vagy több csak továbbító adatfolyam olvasását az eredményhalmazokban. Az osztályokról DataReader további információt az Adatok beolvasása DataReader használatával című témakörben talál.

Az alkalmazás nem hozza létre közvetlenül a IDataReader felület egy példányát, hanem egy öröklő osztály egy példányát IDataReaderhozza létre.

Az öröklő IDataReader osztályoknak implementálniuk kell az örökölt tagokat, és általában további tagokat kell meghatározniuk a szolgáltatóspecifikus funkciók hozzáadásához.

Az adatok beolvasása közben egy másik folyamat vagy szál által beállított eredmény módosítása látható lehet egy olyan osztály felhasználója számára, amely implementál egy IDataReader. A pontos viselkedés azonban szolgáltatótól és időzítéstől is függ.

Megjegyzések az implementálókhoz

A .NET Keretrendszer-adatszolgáltatók konzisztenciájának előmozdításához nevezze el az öröklő osztályt Prv parancs formájában, ahol Prv egy adott .NET-keretrendszer adatszolgáltatójának névterében lévő összes osztály egységes előtagja. Például Sql az osztály előtagja SqlDataAdapter a System.Data.SqlClient névtérben.

A felhasználók nem hoznak létre közvetlenül osztálypéldányt DataReader . Ehelyett az DataReader objektum metódusával szerzik be a ExecuteReader példányt Command . Ezért a konstruktorokat belsőként kell megjelölnie DataReader .

Tulajdonságok

Name Description
Depth

Az aktuális sor beágyazásának mélységét jelző értéket kap.

FieldCount

Lekéri az aktuális sor oszlopainak számát.

(Öröklődés forrása IDataRecord)
IsClosed

Beolvas egy értéket, amely jelzi, hogy az adatolvasó bezárva van-e.

Item[Int32]

Lekéri a megadott indexben található oszlopot.

(Öröklődés forrása IDataRecord)
Item[String]

Lekéri a megadott nevű oszlopot.

(Öröklődés forrása IDataRecord)
RecordsAffected

Lekéri az SQL-utasítás végrehajtásával módosított, beszúrt vagy törölt sorok számát.

Metódusok

Name Description
Close()

Bezárja az IDataReader objektumot.

Dispose()

Végrehajtja a nem felügyelt erőforrások felszabadításával, felszabadításával vagy alaphelyzetbe állításával kapcsolatos alkalmazásalapú feladatokat.

(Öröklődés forrása IDisposable)
GetBoolean(Int32)

A megadott oszlop értékét logikai értékként kapja meg.

(Öröklődés forrása IDataRecord)
GetByte(Int32)

Lekéri a megadott oszlop 8 bites, alá nem írt egész számértékét.

(Öröklődés forrása IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

Beolvassa a megadott oszlopeltolásból származó bájtokból álló adatfolyamot tömbként a pufferbe, a megadott puffereltolástól kezdve.

(Öröklődés forrása IDataRecord)
GetChar(Int32)

Lekéri a megadott oszlop karakterértékét.

(Öröklődés forrása IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

Beolvassa a megadott oszlop eltolásából származó karakterfolyamot tömbként a pufferbe, az adott puffereltolástól kezdve.

(Öröklődés forrása IDataRecord)
GetData(Int32)

IDataReader A megadott oszlop sorszámát adja vissza.

(Öröklődés forrása IDataRecord)
GetDataTypeName(Int32)

Lekéri a megadott mező adattípus-adatait.

(Öröklődés forrása IDataRecord)
GetDateTime(Int32)

Lekéri a megadott mező dátum- és időadat-értékét.

(Öröklődés forrása IDataRecord)
GetDecimal(Int32)

Lekéri a megadott mező rögzített pozícióban megadott numerikus értékét.

(Öröklődés forrása IDataRecord)
GetDouble(Int32)

Lekéri a megadott mező dupla pontosságú lebegőpontos számát.

(Öröklődés forrása IDataRecord)
GetFieldType(Int32)

Lekéri azokat az Type információkat, amelyek a visszaadott típusnak ObjectGetValue(Int32)felelnek meg.

(Öröklődés forrása IDataRecord)
GetFloat(Int32)

Lekéri a megadott mező egy pontosságú lebegőpontos számát.

(Öröklődés forrása IDataRecord)
GetGuid(Int32)

A megadott mező GUID-értékét adja vissza.

(Öröklődés forrása IDataRecord)
GetInt16(Int32)

Lekéri a megadott mező 16 bites aláírt egész számértékét.

(Öröklődés forrása IDataRecord)
GetInt32(Int32)

Lekéri a megadott mező 32 bites aláírt egész számértékét.

(Öröklődés forrása IDataRecord)
GetInt64(Int32)

Lekéri a megadott mező 64 bites aláírt egész számértékét.

(Öröklődés forrása IDataRecord)
GetName(Int32)

Lekéri a keresett mező nevét.

(Öröklődés forrása IDataRecord)
GetOrdinal(String)

Adja vissza a névvel ellátott mező indexét.

(Öröklődés forrása IDataRecord)
GetSchemaTable()

DataTable Az oszlop metaadatait IDataReaderleíró értéket ad vissza.

Akkor ad null vissza, ha a végrehajtott parancs nem adott eredményhalmaztNextResult(), vagy a visszatérés utánfalse.

GetString(Int32)

Lekéri a megadott mező sztringértékét.

(Öröklődés forrása IDataRecord)
GetValue(Int32)

A megadott mező értékét adja vissza.

(Öröklődés forrása IDataRecord)
GetValues(Object[])

Egy objektumtömböt tölt fel az aktuális rekord oszlopértékeivel.

(Öröklődés forrása IDataRecord)
IsDBNull(Int32)

Azt adja vissza, hogy a megadott mező null értékre van-e állítva.

(Öröklődés forrása IDataRecord)
NextResult()

A kötegelt SQL-utasítások eredményeinek beolvasásakor az adatolvasót a következő eredményre lépteti.

Read()

IDataReader A következő rekordra lép.

A következőre érvényes: