SqlCommand.ExecuteReader Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Verzendt de CommandText naar de Connection en bouwt een SqlDataReader.
Overloads
| Name | Description |
|---|---|
| ExecuteReader() |
Verzendt de CommandText naar de Connection en bouwt een SqlDataReader. |
| ExecuteReader(CommandBehavior) |
Verzendt de CommandText naar de Connectionen bouwt een SqlDataReader met behulp van een van de CommandBehavior waarden. |
ExecuteReader()
Verzendt de CommandText naar de Connection en bouwt een SqlDataReader.
public:
System::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public System.Data.SqlClient.SqlDataReader ExecuteReader();
member this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
override this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader
Retouren
Een SqlDataReader-object.
Uitzonderingen
Een SqlDbType andere dan Binary of VarBinary is gebruikt wanneer Value deze is ingesteld op Stream. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
– of –
Een SqlDbType andere naam dan Char, NChar, NVarChar, VarChar of XML is gebruikt wanneer Value deze is ingesteld op TextReader.
– of –
Er is een SqlDbType andere dan XML gebruikt wanneer Value deze is ingesteld op XmlReader.
Er is een uitzondering opgetreden tijdens het uitvoeren van de opdracht voor een vergrendelde rij. Deze uitzondering wordt niet gegenereerd wanneer u Microsoft .NET Framework versie 1.0 gebruikt.
– of –
Er is een time-out opgetreden tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
De huidige status van de verbinding is gesloten. ExecuteReader() vereist een open SqlConnection.
– of –
De SqlConnection gesloten of verbroken tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Er is een fout opgetreden in een Streamof XmlReaderTextReader object tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Het Streamobject XmlReader of TextReader het object is gesloten tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Voorbeelden
In het volgende voorbeeld wordt een SqlCommand gemaakt en vervolgens uitgevoerd door een tekenreeks door te geven die een Transact-SQL SELECT-instructie is en een tekenreeks die moet worden gebruikt om verbinding te maken met de gegevensbron.
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
Opmerkingen
Wanneer de CommandType eigenschap is ingesteld op StoredProcedure, moet de CommandText eigenschap worden ingesteld op de naam van de opgeslagen procedure. Met de opdracht wordt deze opgeslagen procedure uitgevoerd wanneer u aanroept ExecuteReader.
Note
Als een transactie is vastgelopen, wordt er mogelijk pas een uitzondering gegenereerd wanneer Read deze wordt aangeroepen.
Met de functie voor meerdere actieve resultatensets (MARS) kunt u meerdere acties uitvoeren met dezelfde verbinding.
Als u ExecuteReader of BeginExecuteReader gebruikt voor toegang tot XML-gegevens, retourneert SQL Server xml-resultaten die langer zijn dan 2033 tekens in meerdere rijen van elk 2033 tekens. Gebruik of BeginExecuteXmlReader lees FOR XML-query's om dit gedrag ExecuteXmlReader te voorkomen.
Zie ook
Van toepassing op
ExecuteReader(CommandBehavior)
Verzendt de CommandText naar de Connectionen bouwt een SqlDataReader met behulp van een van de CommandBehavior waarden.
public:
System::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public System.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior);
member this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
override this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader
Parameters
- behavior
- CommandBehavior
Een van de CommandBehavior waarden.
Retouren
Een SqlDataReader-object.
Uitzonderingen
Een SqlDbType andere dan Binary of VarBinary is gebruikt wanneer Value deze is ingesteld op Stream. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
– of –
Een SqlDbType andere naam dan Char, NChar, NVarChar, VarChar of XML is gebruikt wanneer Value deze is ingesteld op TextReader.
– of –
Er is een SqlDbType andere dan XML gebruikt wanneer Value deze is ingesteld op XmlReader.
Er is een time-out opgetreden tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Er is een fout opgetreden in een Streamof XmlReaderTextReader object tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
De SqlConnection gesloten of verbroken tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Het Streamobject XmlReader of TextReader het object is gesloten tijdens een streamingbewerking. Zie Ondersteuning voor sqlClient-streaming voor meer informatie over streaming.
Voorbeelden
In het volgende voorbeeld wordt een SqlCommand gemaakt en vervolgens uitgevoerd door een tekenreeks door te geven die een Transact-SQL SELECT-instructie is en een tekenreeks die moet worden gebruikt om verbinding te maken met de gegevensbron. CommandBehavior is ingesteld op 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
Opmerkingen
Wanneer de CommandType eigenschap is ingesteld op StoredProcedure, moet de CommandText eigenschap worden ingesteld op de naam van de opgeslagen procedure. Met de opdracht wordt deze opgeslagen procedure uitgevoerd wanneer u aanroept ExecuteReader.
Note
Hiermee SequentialAccess kunt u grote waarden en binaire gegevens ophalen. Anders kan er een OutOfMemoryException fout optreden en wordt de verbinding gesloten.
Met de functie voor meerdere actieve resultatensets (MARS) kunt u meerdere acties uitvoeren met dezelfde verbinding.
Als u ExecuteReader of BeginExecuteReader gebruikt voor toegang tot XML-gegevens, retourneert SQL Server xml-resultaten die langer zijn dan 2033 tekens in meerdere rijen van elk 2033 tekens. Gebruik of BeginExecuteXmlReader lees FOR XML-query's om dit gedrag ExecuteXmlReader te voorkomen.
Zie ook
- Verbinding maken en ophalen van gegevens in ADO.NET
- Using the .NET Framework Data Provider for SQL Server
- overzicht van ADO.NET