DataContext.ExecuteCommand(String, Object[]) 方法

定义

直接对数据库执行 SQL 命令。

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

参数

command
String

要执行的 SQL 命令。

parameters
Object[]

要传递给命令的参数数组。 注意以下行为:

如果数组中的对象的数目小于命令字符串中已标识的最大数,则会引发异常。

如果数组包含未在命令字符串中引用的对象,则不会引发异常。

如果任一参数为 null,则该参数会转换为 DBNull.Value

返回

执行的命令修改的行数。

示例

以下示例打开一个连接,并将 SQL UPDATE 命令传递给 SQL 引擎。

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

注解

此方法是一种传递机制,适用于 LINQ to SQL 未充分提供特定方案的情况。

命令的语法与用于创建 ADO.NET DataCommand的语法几乎相同。 唯一的区别在于参数的指定方式。 具体来说,通过将参数括在大括号 ({...} 中来指定参数) 并从 0 开始枚举它们。 参数与参数数组中的等号对象相关联。

ExecuteQueryExecuteCommand 允许您为参数替换指定可变数量的参数。 例如,可以在调用 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")

还有另一个示例:

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)

适用于