DataContext.ExecuteCommand(String, Object[]) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
直接对数据库执行 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 开始枚举它们。 参数与参数数组中的等号对象相关联。
ExecuteQuery
和 ExecuteCommand
允许您为参数替换指定可变数量的参数。 例如,可以在调用 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)