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建议限制使用
我在 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建议限制使用