MySQLConnector c#更新MySqlCommand参数
本文关键字:参数 MySqlCommand 更新 MySQLConnector | 更新日期: 2023-09-27 17:58:43
我在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
感谢
将参数声明移动到循环外而不给出显式值,然后在循环内只更新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有一些缺点,建议限制其使用。