簡體   English   中英

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

我想到檢查該值是否存在並將其刪除,但是我發現此解決方案不干凈

謝謝

將參數的聲明移到循環外而不給出明確的值,然后在循環內僅更新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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM