SqlCommand.ExecuteReader Metod

Definition

CommandText Skickar till Connection och skapar en SqlDataReader.

Överlagringar

Name Description
ExecuteReader()

CommandText Skickar till Connection och skapar en SqlDataReader.

ExecuteReader(CommandBehavior)

CommandText Skickar till Connectionoch skapar ett SqlDataReader med något av CommandBehavior värdena.

ExecuteReader()

Källa:
System.Data.SqlClient.notsupported.cs

CommandText Skickar till Connection och skapar en SqlDataReader.

public:
 System::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public System.Data.SqlClient.SqlDataReader ExecuteReader();
override this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
member this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader

Returer

Ett SqlDataReader objekt.

Undantag

En SqlDbType annan än Binär eller VarBinary användes när Value var inställd på Stream. Mer information om strömning finns i SqlClient Streaming Support.

-eller-

En SqlDbType annan än Char, NChar, NVarChar, VarChar eller Xml användes när Value var inställd på TextReader.

-eller-

Ett SqlDbType annat än XML användes när Value var inställt på XmlReader.

Ett undantag inträffade när kommandot kördes mot en låst rad. Det här undantaget genereras inte när du använder Microsoft .NET Framework version 1.0.

-eller-

En timeout inträffade under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.

Anslutningens aktuella tillstånd är stängt. ExecuteReader() kräver en öppen SqlConnection.

-eller-

Den SqlConnection stängda eller borttagna under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.

Ett fel uppstod i ett Stream- XmlReader eller TextReader -objekt under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.

Objektet Stream, XmlReader eller TextReader stängdes under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.

Exempel

I följande exempel skapas en SqlCommand och kör den sedan genom att skicka en sträng som är en Transact-SQL SELECT-instruktion och en sträng som ska användas för att ansluta till datakällan.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        connection.Open();

        SqlCommand command = new SqlCommand(queryString, connection);
        using(SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}", reader[0]));
            }
        }
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        connection.Open()

        Dim command As New SqlCommand(queryString, connection)
        Dim reader As SqlDataReader = command.ExecuteReader()
        Try
            While reader.Read()
                Console.WriteLine("{0}", reader(0))
            End While
        Finally
            ' Always call Close when done reading.
            reader.Close()
        End Try
    End Using
End Sub

Kommentarer

När egenskapen CommandType är inställd StoredProcedureCommandText på ska egenskapen anges till namnet på den lagrade proceduren. Kommandot kör den här lagrade proceduren när du anropar ExecuteReader.

Note

Om en transaktion är låst kan det hända att ett undantag inte utlöses förrän Read det anropas.

Funktionen flera aktiva resultatuppsättningar (MARS) möjliggör flera åtgärder med samma anslutning.

Om du använder ExecuteReader eller BeginExecuteReader för att komma åt XML-data returnerar SQL Server xml-resultat som är större än 2 033 tecken långa på flera rader med 2 033 tecken vardera. Undvik det här beteendet genom att använda ExecuteXmlReader eller BeginExecuteXmlReader läsa FOR XML-frågor.

Se även

Gäller för

ExecuteReader(CommandBehavior)

Källa:
System.Data.SqlClient.notsupported.cs

CommandText Skickar till Connectionoch skapar ett SqlDataReader med något av CommandBehavior värdena.

public:
 System::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public System.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior);
override this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
member this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader

Parametrar

behavior
CommandBehavior

Ett av CommandBehavior värdena.

Returer

Ett SqlDataReader objekt.

Undantag

En SqlDbType annan än Binär eller VarBinary användes när Value var inställd på Stream. Mer information om strömning finns i SqlClient Streaming Support.

-eller-

En SqlDbType annan än Char, NChar, NVarChar, VarChar eller Xml användes när Value var inställd på TextReader.

-eller-

Ett SqlDbType annat än XML användes när Value var inställt på XmlReader.

En timeout inträffade under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.

Ett fel uppstod i ett Stream- XmlReader eller TextReader -objekt under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.

Den SqlConnection stängda eller borttagna under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.

Objektet Stream, XmlReader eller TextReader stängdes under en strömningsåtgärd. Mer information om strömning finns i SqlClient Streaming Support.

Exempel

I följande exempel skapas en SqlCommand och kör den sedan genom att skicka en sträng som är en Transact-SQL SELECT-instruktion och en sträng som ska användas för att ansluta till datakällan. CommandBehavior är inställt på CloseConnection.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        connection.Open();
        using(SqlDataReader reader =
            command.ExecuteReader(CommandBehavior.CloseConnection))
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}", reader[0]));
            }
        }
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()
        Dim reader As SqlDataReader = _
            command.ExecuteReader(CommandBehavior.CloseConnection)
        Try
            While reader.Read()
                Console.WriteLine("{0}", reader(0))
            End While
        Finally
            ' Always call Close when done reading.
            reader.Close()
        End Try
    End Using
End Sub

Kommentarer

När egenskapen CommandType är inställd StoredProcedureCommandText på ska egenskapen anges till namnet på den lagrade proceduren. Kommandot kör den här lagrade proceduren när du anropar ExecuteReader.

Note

Använd SequentialAccess för att hämta stora värden och binära data. Annars kan en OutOfMemoryException inträffa och anslutningen stängs.

Funktionen flera aktiva resultatuppsättningar (MARS) möjliggör flera åtgärder med samma anslutning.

Om du använder ExecuteReader eller BeginExecuteReader för att komma åt XML-data returnerar SQL Server xml-resultat som är större än 2 033 tecken långa på flera rader med 2 033 tecken vardera. Undvik det här beteendet genom att använda ExecuteXmlReader eller BeginExecuteXmlReader läsa FOR XML-frågor.

Se även

Gäller för