MySQLConnector c# 更新 MySqlCommand 参数

MySQLConnector c# update MySqlCommand parameters

我在 C# 中有一个 foreach 循环,它执行一个 MySql 命令来检查结果是否存在,问题是我不知道如何更新对应于 @id_line 的参数中的值第二次迭代时抛出错误

foreach (String[] infos in ReferenceLine.getList())
{
    cmd.Parameters.AddWithValue("@id_line", infos[0].ToString());
    using (MySqlDataReader reader = cmd.ExecuteReader())
    {
        if (reader.HasRows) { return true; }
    }
}

I thought of checking if the value exist and deleting it but I dont find this solution clean

谢谢

将参数的声明移到循环外而不给出显式值,然后在循环内只更新值属性而不重新声明参数

cmd.Parameters.AddWithValue("@id_line", "");
foreach (String[] infos in ReferenceLine.getList())
{

    cmd.Parameters["@id_line"].Value = infos[0].ToString();
    using (MySqlDataReader reader = cmd.ExecuteReader())
    {
        if (reader.HasRows) { return true; }
    }
}

但是,似乎可以通过使用 WHERE 条件的更精确的查询来完全避免此循环。

也考虑使用

 cmd.Parameters.Add("@id_line", MySqlDbType.VarChar);

而不是 AddWithValue。 AddWithValuehas some drawbacks建议限制使用