SqlCommand-Klasse
Stellt eine Transact-SQL-Anweisung oder eine gespeicherte Prozedur dar, die in einer SQL Server-Datenbank ausgeführt werden soll. Diese Klasse kann nicht geerbt werden.
Namespace: System.Data.SqlClient
Assembly: System.Data (in system.data.dll)
Syntax
'Declaration
Public NotInheritable Class SqlCommand
Inherits DbCommand
Implements ICloneable
'Usage
Dim instance As SqlCommand
public sealed class SqlCommand : DbCommand, ICloneable
public ref class SqlCommand sealed : public DbCommand, ICloneable
public final class SqlCommand extends DbCommand implements ICloneable
public final class SqlCommand extends DbCommand implements ICloneable
Hinweise
Wenn eine Instanz von SqlCommand erstellt wird, werden die Lese-/Schreibeigenschaften auf die Anfangswerte festgelegt. Eine Liste dieser Werte finden Sie unter dem SqlCommand-Konstruktor.
SqlCommand enthält die folgenden Methoden für das Ausführen von Befehlen in einer SQL Server-Datenbank:
Element |
Beschreibung |
---|---|
Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der gespeicherten Prozedur, die durch diesen SqlCommand beschrieben wird und i. d. R. Befehle, z. B. INSERT-, DELETE, UPDATE- oder SET-Anweisungen, ausführt. Alle Aufrufe von BeginExecuteNonQuery müssen mit einem Aufruf von EndExecuteNonQuery kombiniert werden, womit der Vorgang typischerweise auf einem separaten Thread abgeschlossen wird. |
|
Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der gespeicherten Prozedur, die von diesem SqlCommand beschrieben wird, und ruft ein oder mehrere Resultsets vom Server ab. Alle Aufrufe von BeginExecuteReader müssen mit einem Aufruf von EndExecuteReader kombiniert werden, womit der Vorgang typischerweise auf einem separaten Thread abgeschlossen wird. |
|
Initiiert die asynchrone Ausführung der Transact-SQL-Anweisung oder der gespeicherter Prozedur, die von diesem SqlCommand beschrieben wird. Alle Aufrufe von BeginExecuteXmlReader müssen mit einem Aufruf von EndExecuteXmlReader kombiniert werden, womit der Vorgang typischerweise auf einem separaten Thread abgeschlossen wird und ein XmlReader-Objekt zurückgegeben wird. |
|
Führt Befehle aus, die Zeilen zurückgeben. Zur Verbesserung der Leistung ruft ExecuteReader Befehle mit der im System gespeicherten Transact-SQL-Prozedur sp_executesql auf. Deshalb zeigt ExecuteReader u. U. ungewünschte Auswirkungen, wenn damit Befehle, z. B. SET-Anweisungen in Transact-SQL, ausgeführt werden. |
|
Führt Befehle wie die Transact-SQL-Anweisungen INSERT, DELETE, UPDATE und SET aus. |
|
Ruft einen einzelnen Wert (z. B. einen Aggregatwert) aus einer Datenbank ab. |
|
Sendet CommandText an Connection und erstellt ein XmlReader-Objekt. |
Sie können die CommandText-Eigenschaft zurücksetzen und das SqlCommand-Objekt wieder verwenden. Sie müssen jedoch den SqlDataReader schließen, bevor ein neuer oder zuvor verwendeter Befehl ausgeführt werden kann.
Wenn von der Methode, die einen SqlCommand ausführt, eine SqlException generiert wird, bleibt die SqlConnection geöffnet, sofern der Schweregrad 19 oder kleiner ist. SqlConnection wird in der Regel ab dem Schweregrad 20 geschlossen. Die Benutzer können die Verbindung aber erneut öffnen und fortfahren.
Thema | Position |
---|---|
Exemplarische Vorgehensweise: Anzeigen von hierarchischen Daten in einem TreeView-Steuerelement | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Exemplarische Vorgehensweise: Anzeigen von hierarchischen Daten in einem TreeView-Steuerelement | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Exemplarische Vorgehensweise: Anzeigen von hierarchischen Daten in einem TreeView-Steuerelement | Erstellen von ASP.NET-Webanwendungen in Visual Studio |
Beispiel
Im folgenden Beispiel werden eine SqlConnection, ein SqlCommand und ein SqlDataReader erstellt. Im Beispiel werden alle Daten gelesen und auf der Konsole ausgegeben. Abschließend wird im Beispiel der SqlDataReader und danach die SqlConnection geschlossen.
Public 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()
Try
While reader.Read()
Console.WriteLine(String.Format("{0}, {1}", _
reader(0), reader(1)))
End While
Finally
' Always call Close when done reading.
reader.Close()
End Try
End Using
End Sub
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();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}
}
Vererbungshierarchie
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DbCommand
System.Data.SqlClient.SqlCommand
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
SqlCommand-Member
System.Data.SqlClient-Namespace
Weitere Ressourcen
Verbinden und Abrufen von Daten mit ADO.NET
Verwenden des .NET Framework-Datenanbieters für SQL Server