"Input string was not in a correct format"
MySQL .NET コネクタ経由でテーブルを更新しようとすると、エラーが発生します。
更新ステートメントは、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 オブジェクトが同じ名前などで 2 回インスタンス化されようとしていることが明らかになりました。2 回目のインスタンス化を削除したところ、問題は解決しました。エラーが誤解を招くものだったのは残念です。
皆さんの反応に感謝しています。皆さんのおかげでコードが改善されたと感じているので、Jon、Steve、Chris に +1 を付けました。助けてくれてありがとう!