Freigeben über


Ausführen eines Befehls

Nachdem Sie eine Verbindung zu einer Datenquelle hergestellt haben, können Sie mit einem Command-Objekt Befehle ausführen und Ergebnisse aus der Datenquelle zurückgeben. Sie können einen Befehl mit dem Command-Konstruktor erstellen, der optionale Argumente einer SQL-Anweisung verwendet, um ein Connection-Objekt und ein Transaction-Objekt in der Datenquelle auszuführen. Wenn Sie einen Befehl für ein bestimmtes Connection-Objekt erstellen möchten, verwenden Sie die CreateCommand-Methode des Connection-Objekts. Die SQL-Anweisung des Command-Objekts kann mit der CommandText-Eigenschaft abgefragt und bearbeitet werden.

Das Command-Objekt stellt mehrere Execute-Methoden bereit, mit denen Sie die geplante Aktion durchführen können. Wenn die Ergebnisse als Datenstream zurückgegeben werden, verwenden Sie die ExecuteReader-Methode zur Rückgabe eines DataReader-Objekts. Verwenden Sie die ExecuteScalar-Methode zur Rückgabe eines einzelnen Wertes. Mit der ExecuteNonQuery-Methode führen Sie Befehle aus, die keine Zeilen zurückgeben.

Wenn Sie das Command-Objekt mit einer gespeicherten Prozedur verwenden, können Sie für die CommandType-Eigenschaft des Command-Objekts den Wert StoredProcedure festlegen. Ist für die CommandType-Eigenschaft der Wert StoredProcedure festgelegt, können Sie die Parameters-Eigenschaft des Command-Objekts verwenden, um auf die Parameter für Ein- und Ausgabe und Rückgabewerte zuzugreifen. Der Zugriff auf die Parameters-Eigenschaft ist unabhängig von der aufgerufenen Execute-Methode möglich. Wenn Sie die ExecuteReader-Methode aufrufen, stehen die Rückgabewerte- und Ausgabeparameter jedoch erst zur Verfügung, wenn das DataReader-Objekt geschlossen ist.

Folgendes Codebeispiel zeigt, wie ein Command-Objekt so formatiert wird, dass eine Liste von Categories (Kategorien) aus der Northwind-Datenbank zurückgegeben wird.

SqlClient

Dim catCMD As SqlCommand = New SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn)
[C#]
SqlCommand catCMD = new SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

OleDb

Dim catCMD As OleDbCommand = New OleDbCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn)
[C#]
OleDbCommand catCMD = new OleDbCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

Leistungsindikatoren für Befehle

Der .NET Framework-Datenprovider für SQL Server fügt einen Leistungsindikator hinzu, damit Sie periodische Probleme im Zusammenhang mit fehlgeschlagenen Befehlsausführungen ermitteln können. Sie können auf den Indikator "SqlClient: Total # failed commands" in der Leistungsüberwachung unter dem .NET CLR Data-Leistungsobjekt zugreifen, um festzustellen, wie viele Befehlsausführungen insgesamt aus irgendeinem Grund fehlgeschlagen sind.

Hinweis   Wenn Sie die Leistungsindikatoren des .NET Framework-Datenproviders für SQL Server zusammen mit ASP.NET-Anwendungen verwenden, steht nur die _Global-Instanz zur Verfügung. Aufgrund dessen ist der vom Leistungsindikator zurückgegebene Wert die Summe der Werte der Indikatoren für alle ASP.NET-Anwendungen.

Siehe auch

Datenzugriff mit .NET Framework-Datenprovidern | Verwenden von gespeicherten Prozeduren mit einem Befehl | Abrufen von Daten mit dem DataReader-Objekt | Abrufen eines einzigen Wertes aus einer Datenbank | Durchführen von Datenbankoperationen und Ändern von Daten | OleDbCommand-Klasse | OleDbDataReader-Klasse | SqlCommand-Klasse | SqlDataReader-Klasse