Sdílet prostřednictvím


DataContext.ExecuteCommand(String, Object[]) Metoda

Definice

Spouští příkazy SQL přímo v databázi.

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

Parametry

command
String

Příkaz SQL, který se má spustit.

parameters
Object[]

Pole parametrů, které se mají předat příkazu. Všimněte si následujícího chování:

Pokud je počet objektů v poli menší než nejvyšší číslo identifikované v příkazovém řetězci, vyvolá se výjimka.

Pokud pole obsahuje objekty, na které se v příkazovém řetězci neodkazuje, nedochází k žádné výjimce.

Pokud má některý z parametrů hodnotu null, převede se na DBNull.Value.

Návraty

Počet řádků upravených spuštěným příkazem.

Příklady

Následující příklad otevře připojení a předá do modulu SQL příkaz SQL UPDATE .

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

Poznámky

Tato metoda je předávací mechanismus pro případy, kdy LINQ to SQL neposkytuje adekvátně pro konkrétní scénář.

Syntaxe příkazu je téměř stejná jako syntaxe použitá k vytvoření ADO.NET DataCommand. Jediným rozdílem je způsob zadání parametrů. Konkrétně zadáte parametry tak, že je uzavřete do závorek ({...}) a vypíšete je od 0. Parametr je přidružen k objektu se stejným číslem v poli parametrů.

ExecuteQuery a ExecuteCommand umožňují zadat proměnný počet argumentů pro nahrazení parametrů. Parametry můžete zadat například při vyvolání příkazu ExecuteQuery<TResult>:

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

A další příklad:

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)

Platí pro