为什么要使用AddWithValue+;参数[";@somevar";].Value,而不是只使用AddWithValue?(MySql+;C#)

为什么要使用AddWithValue+;参数[";@somevar";].Value,而不是只使用AddWithValue?(MySql+;C#),c#,mysql,C#,Mysql,在的示例代码中,有以下代码(每次执行:cmd.ExecuteNonQuery()In iteration): 您的代码示例不正确;cmd.ExecuteNonQuery()实际上在循环中 这将使用不同的参数执行1000次查询,而不重新创建命令。@HenkHolterman-我想Yosef是在问为什么在块内使用cmd.parameters[“@number”].Value而不是cmd.parameters.AddWithValue(“@number”,I))。至少,我对此进行了编辑。 try {

在的示例代码中,有以下代码(每次执行:
cmd.ExecuteNonQuery()
In iteration):


您的代码示例不正确;
cmd.ExecuteNonQuery()实际上在循环中

这将使用不同的参数执行1000次查询,而不重新创建命令。

@HenkHolterman-我想Yosef是在问为什么在块内使用
cmd.parameters[“@number”].Value
而不是
cmd.parameters.AddWithValue(“@number”,I))。至少,我对此进行了编辑。
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();
    }

}
 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();
    }