![](/img/trans.png)
[英]Inserting multiple records into MySQL using MySqlCommand in one query C# (MySQLConnector) & command Parameters for escaping quotes
[英]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; }
}
}
我想到檢查該值是否存在並將其刪除,但是我發現此解決方案不干凈
謝謝
將參數的聲明移到循環外而不給出明確的值,然后在循環內僅更新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 有一些缺點 ,建議限制其使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.