使用ADO.NET一举执行一堆命令

时间:2010-11-05 13:15:41

标签: c# ado.net

我要运行一系列T-SQL DELETE FROM TABLE和INSERT语句。我使用普通的ADO.NET(而不是实体框架)。有没有办法可以一次执行所有这些语句,而不是为每个语句创建一个新的SqlCommand对象?

2 个答案:

答案 0 :(得分:3)

sqlCommand.CommandText = 
    @"DELETE FROM foo; 
      INSERT INTO foo (name) VALUES ('name1'); 
      INSERT INTO foo (name) VALUES ('name2');
    ";

答案 1 :(得分:2)

是的,您可以使用带有CommandType.Text的单个SqlCommand将所有delete语句组合到一个块中。虽然可以同时运行INSERT和DELETE语句,但如果您想要参数化的查询,则可能更容易批处理命令。

修改

我打算添加一个如何创建批量参数化查询的代码示例,但如果只需要其他答案,那么我暂时不管它。