在http://dev.mysql.com/doc/refman/5.5/en/connector-net-programming-prepared.html的示例代码中,有代码(每次执行:迭代中cmd.ExecuteNonQuery()
):
try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO myTable VALUES(NULL, @number, @text)";
cmd.Prepare();
cmd.Parameters.AddWithValue("@number", 1);
cmd.Parameters.AddWithValue("@text", "One");
for (int i=1; i <= 1000; i++)
{
cmd.Parameters["@number"].Value = i;
cmd.Parameters["@text"].Value = "A string value";
cmd.ExecuteNonQuery();
}
}
为什么不反而(迭代后做一次:cmd.ExecuteNonQuery()
):
try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO myTable VALUES(NULL, @number, @text)";
cmd.Prepare();
for (int i=1; i <= 1000; i++)
{
cmd.Parameters.AddWithValue("@number", i);
cmd.Parameters.AddWithValue("@text", "One");
}
cmd.ExecuteNonQuery();
}
答案 0 :(得分:1)
您的代码示例不正确; cmd.ExecuteNonQuery();
实际上在循环内。
使用不同的参数执行1000次查询,而无需重新创建命令。