【问题标题】:MySQLConnector c# update MySqlCommand parametersMySQLConnector c#更新MySqlCommand参数
【发布时间】:2016-11-30 04:00:52
【问题描述】:

我在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; }
    }
}

我想检查该值是否存在并将其删除,但我没有找到此解决方案 clean

谢谢

【问题讨论】:

    标签: c# mysql .net mysql-connector


    【解决方案1】:

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

    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。 AddWithValue has some drawbacks 建议限制其使用。

    【讨论】:

      猜你喜欢
      • 2011-08-28
      • 2010-09-20
      • 1970-01-01
      • 2012-02-14
      • 2022-06-28
      • 2014-07-04
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多