Freigeben über


DataContext.ExecuteCommand(String, Object[]) Methode

Definition

Führt SQL-Befehle direkt in der Datenbank aus.

public:
 int ExecuteCommand(System::String ^ command, ... cli::array <System::Object ^> ^ parameters);
public int ExecuteCommand (string command, params object[] parameters);
member this.ExecuteCommand : string * obj[] -> int
Public Function ExecuteCommand (command As String, ParamArray parameters As Object()) As Integer

Parameter

command
String

Der auszuführende SQL-Befehl.

parameters
Object[]

Das Parameterarray, das an den Befehl übergeben werden soll. Beachten Sie Folgendes:

Wenn die Anzahl der Objekte im Array geringer ist als die höchste in der Befehlszeichenfolge identifizierte Anzahl, wird eine Ausnahme ausgelöst.

Wenn das Array Objekte enthält, auf die in der Befehlszeichenfolge nicht verwiesen wird, wird keine Ausnahme ausgelöst.

NULL-Parameter werden in DBNull.Value konvertiert.

Gibt zurück

Die Anzahl der vom ausgeführten Befehl geänderten Zeilen.

Beispiele

Im folgenden Beispiel wird eine Verbindung geöffnet und ein SQL-Befehl UPDATE an die SQL-Engine übergeben.

db.ExecuteCommand("UPDATE Products SET UnitPrice = UnitPrice + 1.00");
    db.ExecuteCommand _
("UPDATE Products SET UnitPrice = UnitPrice + 1.00")

Hinweise

Diese Methode ist ein Passthroughmechanismus für Fälle, in denen LINQ to SQL ein bestimmtes Szenario nicht ausreichend bereitstellt.

Die Syntax für den Befehl ist fast identisch mit der Syntax, die zum Erstellen eines ADO.NET DataCommandverwendet wird. Der einzige Unterschied besteht darin, wie die Parameter angegeben werden. Insbesondere geben Sie Parameter an, indem Sie sie in Klammern ({...}) einschließen und sie ab 0 auflisten. Der Parameter ist dem gleich nummerierten Objekt im Parameterarray zugeordnet.

ExecuteQuery und ExecuteCommand ermöglichen Ihnen das Angeben einer variablen Anzahl von Argumenten für die Parameterersetzung. Sie können beispielsweise beim Aufrufen von ExecuteQuery<TResult> die Parameter angeben:

db.ExecuteQuery<Customer>("SELECT * FROM dbo.Customers WHERE City = {0}", "London");
db.ExecuteQuery(Of Customer)("SELECT * FROM dbo.Customers WHERE City = {0}", "London")

Ein weiteres Beispiel:

db.ExecuteCommand("UPDATE Products SET QuantityPerUnit = {0} WHERE ProductID = {1}", "24 boxes", 5);
db.ExecuteCommand("UPDATE Products SET QuantityPerUnit = {0} WHERE ProductID = {1}", "24 boxes", 5)

Gilt für: