【问题标题】: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 建议限制其使用。