SqlCommand.ExecuteReader Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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()
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)
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
- Ansluta och hämta data i ADO.NET
- Använder .NET Framework Data Provider för SQL Server
- översikt över ADO.NET