SqlDataReader Osztály

Definíció

Lehetővé teszi, hogy csak előre beolvassa a sorokat egy SQL Server adatbázisból. Ez az osztály nem örökölhető.

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
type SqlDataReader = class
    inherit MarshalByRefObject
    interface IEnumerable
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Öröklődés
SqlDataReader
Öröklődés
Öröklődés
SqlDataReader
Megvalósítás

Példák

Az alábbi példa létrehoz egy SqlConnection, egy SqlCommandés egy SqlDataReader. A példa végigolvassa az adatokat, és kiírja a konzolablakba. A kód ezután bezárja a SqlDataReader. A SqlConnection kódblokk végén a rendszer automatikusan bezárja a using kódot.

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

A létrehozáshoz SqlDataReaderaz ExecuteReader objektum metódusát SqlCommand kell meghívnia a konstruktor közvetlen használata helyett.

Amíg a SqlDataReader használatban van, a társított SqlConnection szolgáltatás foglalt SqlDataReader, és más műveletek nem hajthatóak végre a SqlConnection másikon, csak a bezárásával. Ez a helyzet addig, amíg a Close metódust SqlDataReader meg nem hívják. A kimeneti paramétereket például csak a hívás Closeután lehet lekérni.

Az adatok olvasása közben egy másik folyamat vagy szál által beállított eredmény módosítása látható lehet a SqlDataReaderfelhasználó számára. A pontos viselkedés azonban az időzítéstől függ.

IsClosed és RecordsAffected ezek az egyetlen tulajdonságok, amelyeket a SqlDataReader lezárás után hívhat meg. Bár a RecordsAffected tulajdonság elérhető, amíg létezik SqlDataReader , mindig hívja Close meg, mielőtt visszaadja RecordsAffected az értéket, hogy garantálja a pontos visszatérési értéket.

Ha szekvenciális hozzáférést (CommandBehavior.SequentialAccess) használ, a rendszer emeli InvalidOperationException a SqlDataReader pozíciót, és egy másik olvasási műveletet kísérel meg az előző oszlopban.

Note

Az optimális teljesítmény érdekében elkerülheti a SqlDataReader felesleges objektumok létrehozását vagy az adatok szükségtelen másolatának készítését. Ezért több metódus hívása, például GetValue ugyanarra az objektumra mutató hivatkozás visszaadása. Körültekintően járjon el, ha az olyan metódusok által visszaadott objektumok mögöttes értékét módosítja, mint a GetValue.

Tulajdonságok

Name Description
Connection

Lekéri a SqlConnection társított .SqlDataReader

Depth

Olyan értéket kap, amely az aktuális sor beágyazásának mélységét jelzi.

FieldCount

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

HasRows

Olyan értéket kap, amely jelzi, hogy a SqlDataReader sor egy vagy több sort tartalmaz-e.

IsClosed

Egy logikai értéket kér le, amely jelzi, hogy a megadott SqlDataReader példány bezárva lett-e.

Item[Int32]

A megadott oszlop értékét a natív formátumban kapja meg az oszlop sorszáma alapján.

Item[String]

Lekéri a megadott oszlop értékét natív formátumban az oszlopnév alapján.

RecordsAffected

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

VisibleFieldCount

A nem rejtett mezők SqlDataReader számát adja meg.

Metódusok

Name Description
Close()

Bezárja az SqlDataReader objektumot.

CreateObjRef(Type)

Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt.

(Öröklődés forrása MarshalByRefObject)
Dispose()

Az osztály aktuális példánya által használt összes erőforrást felszabadítja DbDataReader .

(Öröklődés forrása DbDataReader)
Dispose(Boolean)

Felszabadítja a felügyelt erőforrások által DbDataReader használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

(Öröklődés forrása DbDataReader)
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

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

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

GetByte(Int32)

A megadott oszlop értékét bájtként adja meg.

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

A megadott oszlopeltolásból bájtokból álló adatfolyamot olvas be a pufferbe egy tömbbe az adott puffereltolástól kezdve.

GetChar(Int32)

A megadott oszlop értékét egyetlen karakterként kapja meg.

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

Beolvassa a megadott oszlopeltolásból származó karakterfolyamot a pufferbe tömbként az adott puffereltolástól kezdve.

GetData(Int32)

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

GetData(Int32)

Beágyazott adatolvasót ad vissza a kért oszlophoz.

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

Lekéri a megadott oszlop adattípusát képviselő sztringet.

GetDateTime(Int32)

A megadott oszlop értékét adja meg objektumként DateTime .

GetDateTimeOffset(Int32)

A megadott oszlop értékét kéri le objektumként DateTimeOffset .

GetDbDataReader(Int32)

Olyan objektumot DbDataReader ad vissza a kért oszloprendhez, amelyet felül lehet bírálni egy szolgáltatóspecifikus implementációval.

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

A megadott oszlop értékét adja meg objektumként Decimal .

GetDouble(Int32)

A megadott oszlop értékét dupla pontosságú lebegőpontos számként adja meg.

GetEnumerator()

Egy olyan értéket IEnumerator ad vissza, amely a SqlDataReader.

GetFieldType(Int32)

Lekéri az Type objektum adattípusát.

GetFieldValue<T>(Int32)

Szinkron módon lekéri a megadott oszlop értékét típusként. GetFieldValueAsync<T>(Int32, CancellationToken) A metódus aszinkron verziója.

GetFieldValueAsync<T>(Int32, CancellationToken)

Aszinkron módon típusként kapja meg a megadott oszlop értékét. GetFieldValue<T>(Int32) A metódus szinkron verziója.

GetFieldValueAsync<T>(Int32)

Aszinkron módon a megadott oszlop értékét kéri le a kért típusként.

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

A megadott oszlop értékét egy pontosságú lebegőpontos számként adja meg.

GetGuid(Int32)

A megadott oszlop értékét globálisan egyedi azonosítóként (GUID) kapja meg.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

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

A megadott oszlop értékét 16 bites aláírt egész számként kapja meg.

GetInt32(Int32)

A megadott oszlop értékét 32 bites aláírt egész számként kapja meg.

GetInt64(Int32)

A megadott oszlop értékét 64 bites aláírt egész számként kapja meg.

GetLifetimeService()
Elavult.

Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot.

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

Lekéri a megadott oszlop nevét.

GetOrdinal(String)

Lekéri az oszlop sorszámát az oszlop nevének megadva.

GetProviderSpecificFieldType(Int32)

Object Lekéri az alapul szolgáló szolgáltatóspecifikus mezőtípus ábrázolását.

GetProviderSpecificValue(Int32)

Olyan értéket Object kap, amely a mögöttes szolgáltató adott értékének ábrázolása.

GetProviderSpecificValues(Object[])

Olyan objektumtömböt kap, amely a mögöttes szolgáltató specifikus értékeit jeleníti meg.

GetSchemaTable()

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

GetSqlBinary(Int32)

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

GetSqlBoolean(Int32)

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

GetSqlByte(Int32)

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

GetSqlBytes(Int32)

A megadott oszlop SqlBytesértékét a következőképpen kapja meg: .

GetSqlChars(Int32)

A megadott oszlop SqlCharsértékét a következőképpen kapja meg: .

GetSqlDateTime(Int32)

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

GetSqlDecimal(Int32)

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

GetSqlDouble(Int32)

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

GetSqlGuid(Int32)

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

GetSqlInt16(Int32)

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

GetSqlInt32(Int32)

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

GetSqlInt64(Int32)

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

GetSqlMoney(Int32)

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

GetSqlSingle(Int32)

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

GetSqlString(Int32)

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

GetSqlValue(Int32)

A megadott oszlop adatértékét adja vissza SQL Server típusként.

GetSqlValues(Object[])

Kitölt egy Object tömböt, amely a rekord összes oszlopának értékeit tartalmazza, SQL Server típusként kifejezve.

GetSqlXml(Int32)

A megadott oszlop értékét XML-értékként adja meg.

GetStream(Int32)

Bináris, képi, varbináris, UDT és variáns adattípusokat Streamkér le.

GetString(Int32)

A megadott oszlop értékét sztringként adja meg.

GetTextReader(Int32)

Char, NChar, NText, NVarChar, text, varChar és Variant adattípusokat TextReaderkér le.

GetTimeSpan(Int32)

A megadott oszlop értékét kéri le objektumként TimeSpan .

GetType()

Lekéri az Type aktuális példányt.

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

A megadott oszlop értékét a natív formátumában kapja meg.

GetValues(Object[])

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

GetXmlReader(Int32)

XML XmlReadertípusú adatokat kér le .

InitializeLifetimeService()
Elavult.

Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához.

(Öröklődés forrása MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

Meghatározza, hogy a megadott CommandBehavior érték megegyezik-e a SqlDataReader .

IsDBNull(Int32)

Olyan értéket kap, amely jelzi, hogy az oszlop nem létező vagy hiányzó értékeket tartalmaz-e.

IsDBNullAsync(Int32, CancellationToken)

Az oszlop aszinkron verziója IsDBNull(Int32), amely egy olyan értéket kap, amely jelzi, hogy az oszlop nem létező vagy hiányzó értékeket tartalmaz-e.

A lemondási jogkivonat használatával kérheti a művelet megszakítását a parancs időtúllépése előtt. A kivételek a visszaadott tevékenységobjektumon keresztül lesznek jelentve.

IsDBNullAsync(Int32)

Aszinkron módon olyan értéket kap, amely jelzi, hogy az oszlop nem létező vagy hiányzó értékeket tartalmaz-e.

(Öröklődés forrása DbDataReader)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MemberwiseClone(Boolean)

Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre.

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

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

NextResultAsync()

Az aszinkron módon a következő eredményre viszi az olvasót egy utasításköteg eredményeinek olvasásakor.

(Öröklődés forrása DbDataReader)
NextResultAsync(CancellationToken)

A NextResult() aszinkron verziója, amely a batch Transact-SQL utasítások eredményeinek beolvasásakor az adatolvasót a következő eredményre viszi.

A lemondási jogkivonat használatával kérheti a művelet megszakítását a parancs időtúllépése előtt. A kivételek a visszaadott tevékenységobjektumon keresztül lesznek jelentve.

Read()

SqlDataReader A következő rekordra lép.

ReadAsync()

Aszinkron módon egy eredményhalmaz következő rekordja felé viszi az olvasót.

(Öröklődés forrása DbDataReader)
ReadAsync(CancellationToken)

Aszinkron verziója Read(), amely a SqlDataReader következő rekordra lép.

A lemondási jogkivonat használatával kérheti a művelet megszakítását a parancs időtúllépése előtt. A kivételek a visszaadott tevékenységobjektumon keresztül lesznek jelentve.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

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

Explicit interfész-implementációk

Name Description
IDataReader.Close()

Ennek a tagnak a leírását lásd Close(): .

(Öröklődés forrása DbDataReader)
IDataReader.GetSchemaTable()

Ennek a tagnak a leírását lásd GetSchemaTable(): .

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

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

IDataRecord.GetData(Int32)

Ennek a tagnak a leírását lásd GetData(Int32): .

(Öröklődés forrása DbDataReader)
IDisposable.Dispose()

Az adatolvasó által használt összes erőforrást felszabadítja.

IEnumerable.GetEnumerator()

Egy enumerátort ad vissza, amely az elemgyűjteményen keresztüli iterálásra használható.

Bővítő metódusok

Name Description
AsParallel(IEnumerable)

Lehetővé teszi a lekérdezés párhuzamosítását.

AsQueryable(IEnumerable)

Átalakítja az egyiket IEnumerableIQueryable.

CanGetColumnSchema(DbDataReader)

Olyan értéket kap, amely jelzi, hogy egy DbDataReader oszlopséma lekérhető-e.

Cast<TResult>(IEnumerable)

Egy elem elemeit IEnumerable a megadott típusra veti.

GetColumnSchema(DbDataReader)

Lekéri az oszlopséma (DbColumn gyűjtemény) egy DbDataReader.

OfType<TResult>(IEnumerable)

Egy adott típus alapján szűri IEnumerable egy adott elem elemeit.

A következőre érvényes:

Lásd még