Reputation: 25807
In the sample code at http://dev.mysql.com/doc/refman/5.5/en/connector-net-programming-prepared.html, there is the code(do each time : cmd.ExecuteNonQuery()
in iteration):
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();
}
}
Why is it not instead(do 1 time: cmd.ExecuteNonQuery()
after iteration):
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();
}
Upvotes: 0
Views: 419
Reputation: 887453
Your code sample is incorrect; the cmd.ExecuteNonQuery();
is actually inside the loop.
This executes the query 1,000 times with different parameters, without re-creating the command.
Upvotes: 1