SqlDataReader Klass

Definition

Ger ett sätt att läsa en dataström med endast framåtriktade rader från en SQL Server databas. Det går inte att ärva den här klassen.

public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, 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 NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Arv
SqlDataReader
Arv
Implementeringar

Exempel

I följande exempel skapas en SqlConnection, en SqlCommandoch en SqlDataReader. Exemplet läser igenom data och skriver ut dem till konsolfönstret. Koden stänger SqlDataReadersedan . SqlConnection Stängs automatiskt i slutet av kodblocketusing.

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

Om du vill skapa en SqlDataReadermåste du anropa ExecuteReader -metoden SqlCommand för objektet i stället för att direkt använda en konstruktor.

SqlDataReader Medan används är den associerade SqlConnection upptagen med att hantera SqlDataReader, och inga andra åtgärder kan utföras på den andra än att stänga denSqlConnection. Detta är fallet tills Close metoden för SqlDataReader anropas. Du kan till exempel inte hämta utdataparametrar förrän du har anropat Close.

Ä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 SqlDataReader. Det exakta beteendet är dock tidsberoende.

IsClosed och RecordsAffected är de enda egenskaper som du kan anropa när har SqlDataReader stängts. Även om egenskapen RecordsAffected kan nås när den SqlDataReader finns anropar Close du alltid innan du returnerar värdet RecordsAffected för för att garantera ett korrekt returvärde.

När du använder sekventiell åtkomst (CommandBehavior.SequentialAccess) utlöses en InvalidOperationException om SqlDataReader positionen är avancerad och en annan läsåtgärd görs i föregående kolumn.

Note

För optimal prestanda undviker SqlDataReader du att skapa onödiga objekt eller göra onödiga kopior av data. Därför returnerar flera anrop till metoder som GetValue att returnera en referens till samma objekt. Var försiktig om du ändrar det underliggande värdet för de objekt som returneras med metoder som GetValue.

Egenskaper

Name Description
Connection

Hämtar associerad SqlConnection med SqlDataReader.

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.

HasRows

Hämtar ett värde som anger om innehåller SqlDataReader en eller flera rader.

IsClosed

Hämtar ett booleskt värde som anger om den angivna SqlDataReader instansen har stängts.

Item[Int32]

Hämtar värdet för den angivna kolumnen i sitt interna format med tanke på kolumnens ordningstal.

Item[String]

Hämtar värdet för den angivna kolumnen i sitt ursprungliga format givet kolumnnamnet.

RecordsAffected

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

VisibleFieldCount

Hämtar antalet fält i SqlDataReader som inte är dolda.

Metoder

Name Description
Close()

Stänger objektet SqlDataReader .

CreateObjRef(Type)

Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt.

(Ärvd från MarshalByRefObject)
Dispose()

Släpper alla resurser som används av den aktuella instansen DbDataReader av klassen.

(Ärvd från DbDataReader)
Dispose(Boolean)

Släpper de ohanterade resurser som används av DbDataReader och släpper eventuellt de hanterade resurserna.

(Ärvd från DbDataReader)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

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

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

GetByte(Int32)

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

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

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

GetChar(Int32)

Hämtar värdet för den angivna kolumnen som ett enda tecken.

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

Läser en ström av tecken från den angivna kolumnförskjutningen till bufferten som en matris som börjar vid den angivna buffertförskjutningen.

GetData(Int32)

Returnerar en IDataReader för den angivna kolumnordningen.

GetData(Int32)

Returnerar en kapslad dataläsare för den begärda kolumnen.

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

Hämtar en sträng som representerar datatypen för den angivna kolumnen.

GetDateTime(Int32)

Hämtar värdet för den angivna kolumnen som ett DateTime objekt.

GetDateTimeOffset(Int32)

Hämtar värdet för den angivna kolumnen som ett DateTimeOffset objekt.

GetDbDataReader(Int32)

Returnerar ett DbDataReader objekt för den begärda kolumnordningen som kan åsidosättas med en providerspecifik implementering.

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

Hämtar värdet för den angivna kolumnen som ett Decimal objekt.

GetDouble(Int32)

Hämtar värdet för den angivna kolumnen som ett flyttal med dubbel precision.

GetEnumerator()

Returnerar en IEnumerator som itererar via SqlDataReader.

GetFieldType(Int32)

Type Hämtar objektets datatyp.

GetFieldValue<T>(Int32)

Synkront hämtar värdet för den angivna kolumnen som en typ. GetFieldValueAsync<T>(Int32, CancellationToken) är den asynkrona versionen av den här metoden.

GetFieldValueAsync<T>(Int32, CancellationToken)

Asynkront hämtar värdet för den angivna kolumnen som en typ. GetFieldValue<T>(Int32) är den synkrona versionen av den här metoden.

GetFieldValueAsync<T>(Int32)

Asynkront hämtar värdet för den angivna kolumnen som den begärda typen.

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

Hämtar värdet för den angivna kolumnen som ett flyttal med enkel precision.

GetGuid(Int32)

Hämtar värdet för den angivna kolumnen som en globalt unik identifierare (GUID).

GetHashCode()

Fungerar som standard-hash-funktion.

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

Hämtar värdet för den angivna kolumnen som ett 16-bitars signerat heltal.

GetInt32(Int32)

Hämtar värdet för den angivna kolumnen som ett 32-bitars signerat heltal.

GetInt64(Int32)

Hämtar värdet för den angivna kolumnen som ett 64-bitars signerat heltal.

GetLifetimeService()

Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen.

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

Hämtar namnet på den angivna kolumnen.

GetOrdinal(String)

Hämtar kolumnordningen med namnet på kolumnen.

GetProviderSpecificFieldType(Int32)

Hämtar en Object som är en representation av den underliggande providerspecifika fälttypen.

GetProviderSpecificValue(Int32)

Hämtar en Object som är en representation av det underliggande providerspecifika värdet.

GetProviderSpecificValues(Object[])

Hämtar en matris med objekt som är en representation av de underliggande providerspecifika värdena.

GetSchemaTable()

Returnerar en DataTable som beskriver kolumnmetadata för SqlDataReader.

GetSqlBinary(Int32)

Hämtar värdet för den angivna kolumnen som en SqlBinary.

GetSqlBoolean(Int32)

Hämtar värdet för den angivna kolumnen som en SqlBoolean.

GetSqlByte(Int32)

Hämtar värdet för den angivna kolumnen som en SqlByte.

GetSqlBytes(Int32)

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

GetSqlChars(Int32)

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

GetSqlDateTime(Int32)

Hämtar värdet för den angivna kolumnen som en SqlDateTime.

GetSqlDecimal(Int32)

Hämtar värdet för den angivna kolumnen som en SqlDecimal.

GetSqlDouble(Int32)

Hämtar värdet för den angivna kolumnen som en SqlDouble.

GetSqlGuid(Int32)

Hämtar värdet för den angivna kolumnen som en SqlGuid.

GetSqlInt16(Int32)

Hämtar värdet för den angivna kolumnen som en SqlInt16.

GetSqlInt32(Int32)

Hämtar värdet för den angivna kolumnen som en SqlInt32.

GetSqlInt64(Int32)

Hämtar värdet för den angivna kolumnen som en SqlInt64.

GetSqlMoney(Int32)

Hämtar värdet för den angivna kolumnen som en SqlMoney.

GetSqlSingle(Int32)

Hämtar värdet för den angivna kolumnen som en SqlSingle.

GetSqlString(Int32)

Hämtar värdet för den angivna kolumnen som en SqlString.

GetSqlValue(Int32)

Returnerar datavärdet i den angivna kolumnen som en SQL Server typ.

GetSqlValues(Object[])

Fyller en matris med Object som innehåller värdena för alla kolumner i posten, uttryckt som SQL Server typer.

GetSqlXml(Int32)

Hämtar värdet för den angivna kolumnen som ett XML-värde.

GetStream(Int32)

Hämtar datatyperna binary, image, varbinary, UDT och variant som en Stream.

GetString(Int32)

Hämtar värdet för den angivna kolumnen som en sträng.

GetTextReader(Int32)

Hämtar datatyperna Char, NChar, NText, NVarChar, text, varChar och Variant som en TextReader.

GetTimeSpan(Int32)

Hämtar värdet för den angivna kolumnen som ett TimeSpan objekt.

GetType()

Hämtar den aktuella instansen Type .

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

Hämtar värdet för den angivna kolumnen i sitt interna format.

GetValues(Object[])

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

GetXmlReader(Int32)

Hämtar data av typen XML som en XmlReader.

InitializeLifetimeService()

Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

Avgör om de angivna CommandBehavior matchar SqlDataReader .

IsDBNull(Int32)

Hämtar ett värde som anger om kolumnen innehåller icke-existerande eller saknade värden.

IsDBNullAsync(Int32, CancellationToken)

En asynkron version av IsDBNull(Int32), som hämtar ett värde som anger om kolumnen innehåller icke-existerande eller saknade värden.

Annulleringstoken kan användas för att begära att åtgärden avbryts innan tidsgränsen för kommandot förflutit. Undantag rapporteras via det returnerade aktivitetsobjektet.

IsDBNullAsync(Int32)

Asynkront hämtar ett värde som anger om kolumnen innehåller obefintliga eller saknade värden.

(Ärvd från DbDataReader)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
MemberwiseClone(Boolean)

Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet.

(Ärvd från MarshalByRefObject)
NextResult()

Flyttar dataläsaren till nästa resultat när du läser resultatet av batch-Transact-SQL-instruktioner.

NextResultAsync()

Asynkront avancerar läsaren till nästa resultat när du läser resultatet av en batch med instruktioner.

(Ärvd från DbDataReader)
NextResultAsync(CancellationToken)

En asynkron version av NextResult(), som flyttar dataläsaren till nästa resultat när du läser resultatet av batch-Transact-SQL-instruktioner.

Annulleringstoken kan användas för att begära att åtgärden avbryts innan tidsgränsen för kommandot förflutit. Undantag rapporteras via det returnerade aktivitetsobjektet.

Read()

SqlDataReader Går vidare till nästa post.

ReadAsync()

Asynkront avancerar läsaren till nästa post i en resultatuppsättning.

(Ärvd från DbDataReader)
ReadAsync(CancellationToken)

En asynkron version av Read(), som går vidare SqlDataReader till nästa post.

Annulleringstoken kan användas för att begära att åtgärden avbryts innan tidsgränsen för kommandot förflutit. Undantag rapporteras via det returnerade aktivitetsobjektet.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
IDataRecord.GetData(Int32)

Returnerar en IDataReader för den angivna kolumnordningen.

IDisposable.Dispose()

Frigör alla resurser som används av dataläsaren.

IEnumerable.GetEnumerator()

Returnerar en uppräknare som kan användas för att iterera genom objektsamlingen.

Tilläggsmetoder

Name Description
AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

CanGetColumnSchema(DbDataReader)

Hämtar ett värde som anger om en DbDataReader kan hämta ett kolumnschema.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

GetColumnSchema(DbDataReader)

Hämtar kolumnschemat (DbColumn samlingen) för en DbDataReader.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

Gäller för

Se även