嘗試通過MySQL .NET連接器更新表時遇到錯誤"Input string was not in a correct format"
。獲取錯誤通過MySQL更新時,輸入字符串格式不正確
update語句在通過MySQL工作臺運行時工作正常,但不通過代碼,我希望有人能告訴我爲什麼。
代碼是:
MySqlCommand command = new MySqlCommand();
command.Connection = conn;
command.CommandText = "update fulfilled_shipments_data set addedCustomer=1 where amazonOrderId like '" + amazonOrderId + "%';";
command.ExecuteNonQuery();
我試圖既執行作爲非查詢,並且如的ExecuteReader();沒有運氣。
我相信這是一個簡單的錯誤,但我似乎無法找到它,因此任何幫助將不勝感激。
- 編輯 - 我都試過,沒有運氣以下:
MySqlCommand command = new MySqlCommand();
command.Connection = conn;
command.CommandText = "update fulfilled_shipments_data set addedCustomer=1 where amazonOrderId like '@amazonOrderId';";
command.Parameters.AddWithValue("@amazonOrderId", amazonOrderId);
也發生了變化的CommandText到:
command.CommandText = "update fulfilled_shipments_data set addedCustomer=1 where convert(varchar(50), amazonOrderId) like '" + amazonOrderId + "';";
和
command.CommandText = "update fulfilled_shipments_data set addedCustomer=1 where amazonOrderId = '@amazonOrderId';";
和
command.CommandText = "update fulfilled_shipments_data set addedCustomer=1 where amazonOrderId = @amazonOrderId;";
- 分辨率 -
我的解決方案實際上是在另一段代碼中找到的。在多次運行調試器後,很明顯MySqlConnection對象試圖實例化兩次 - 具有相同的名稱等。我刪除了第二個實例並解決了問題。錯誤是誤導性的,這太糟糕了。
我很感謝大家的迴應,因爲我覺得他們讓我的代碼更好,因此我給Jon,Steve和Chris +1了。謝謝您的幫助!
第一點:**不要這樣做**。使用參數化的SQL。 –
這有時稱爲「[Bobby Tables](http://xkcd.com/327/)」。 – dasblinkenlight
你可以調試並查看實際查詢文本嗎?我敢打賭,你的訂單ID中有一個逗號或者其他東西 - 也不是MySql使用反引號來識別數據庫對象嗎?什麼方法的錯誤(你可以發佈堆棧?) – Charleh