Språk

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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
Arv
SqlDataReader
Arv
Arv
SqlDataReader
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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

Depth

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

FieldCount

Hämtar antalet kolumner i den aktuella raden.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

HasRows

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

IsClosed

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

Item[Int32]

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

Item[String]

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

RecordsAffected

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

VisibleFieldCount

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

Metoder

Name Description
Close()

Stänger objektet SqlDataReader .

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetByte(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetChar(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetData(Int32)

Returnerar en IDataReader för den angivna kolumnordningen.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetDateTime(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetDateTimeOffset(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetDouble(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetEnumerator()

Returnerar en IEnumerator som itererar via SqlDataReader.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetFieldType(Int32)

Type Hämtar objektets datatyp.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetGuid(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetInt32(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetInt64(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetLifetimeService()
Föråldrad.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetOrdinal(String)

Hämtar kolumnordningen med namnet på kolumnen.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetProviderSpecificFieldType(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetProviderSpecificValue(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetProviderSpecificValues(Object[])

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSchemaTable()

Returnerar en DataTable som beskriver kolumnmetadata för SqlDataReader.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlBinary(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlBoolean(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlByte(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlBytes(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlChars(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlDateTime(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlDecimal(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlDouble(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlGuid(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlInt16(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlInt32(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlInt64(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlMoney(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlSingle(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlString(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlValue(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlValues(Object[])

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetSqlXml(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetStream(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetString(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetTextReader(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetTimeSpan(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetValues(Object[])

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

GetXmlReader(Int32)

Hämtar data av typen XML som en XmlReader.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

InitializeLifetimeService()
Föråldrad.

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 .

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

IsDBNull(Int32)

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

      The cancellation token can be used to request that the operation be abandoned before the command timeout elapses. Exceptions will be reported via the returned Task object.

      <p>For new development, use <a href="/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace">Microsoft.Data.SqlClient</a>. This page documents System.Data.SqlClient.</p>
Read()

SqlDataReader Går vidare till nästa post.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
IDataReader.Close()

En beskrivning av den här medlemmen finns i Close().

(Ärvd från DbDataReader)
IDataReader.GetSchemaTable()

En beskrivning av den här medlemmen finns i GetSchemaTable().

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

Returnerar en IDataReader för den angivna kolumnordningen.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

IDataRecord.GetData(Int32)

En beskrivning av den här medlemmen finns i GetData(Int32).

(Ärvd från DbDataReader)
IDisposable.Dispose()

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

IEnumerable.GetEnumerator()

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

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar System.Data.SqlClient.

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