我要沿以下行创建多行插入语句:
insert into foo (
value1,
value2,
value3
) values
( "1", "2", "3"),
( "4", "5", "6"),
( "7", "8", "9");
其中要插入的行数是可变的。是否有方法使用
IDBCommand
参数化构造此查询? 最佳答案
像这样的东西应该行得通。
IDbCommand cmd = new SqlCommand();
StringBuilder sb = new StringBuilder();
sb.Append("insert into foo(col, col2, col3), values");
int parms = 0;
for(int i = 0 ; i<3; i++)
{
sb.AppendFormat("( @{0}, @{1}, @{2}),", parms, parms + 1, parms + 2);
cmd.Parameters.Add(new SqlParameter((parms++).ToString(), ""));
cmd.Parameters.Add(new SqlParameter((parms++).ToString(), ""));
cmd.Parameters.Add(new SqlParameter((parms++).ToString(), ""));
}
sb.Append(";");
cmd.Parameters;
cmd.CommandText = sb.ToString().Replace(",;", ";");
关于c# - 用于多行插入的IDBCommand参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14758680/