さまざまな文字を処理するために必要なテーブルがあります。文字には、Ø、® などがあります。
テーブルをデフォルトの照合として utf-8 に設定しました。すべての列でテーブルのデフォルトが使用されますが、これらの文字を挿入しようとするとエラーが発生します: Incorrect string value: '\xEF\xBF\xBD' for column 'buyerName' at行 1
私の接続文字列は次のように定義されています
string mySqlConn = "server="+server+";user="+username+";database="+database+";port="+port+";password="+password+";charset=utf8;";
なぜまだエラーが表示されるのか途方に暮れています。.net コネクタまたは MySQL のセットアップで何か見逃したことはありますか?
- 編集 -
私の(新しい)C#挿入ステートメントは次のようになります。
MySqlCommand insert = new MySqlCommand( "INSERT INTO fulfilled_Shipments_Data " +
"(amazonOrderId,merchantOrderId,shipmentId,shipmentItemId,"+
"amazonOrderItemId,merchantOrderItemId,purchaseDate,"+ ...
VALUES (@amazonOrderId,@merchantOrderId,@shipmentId,@shipmentItemId,"+
"@amazonOrderItemId,@merchantOrderItemId,@purchaseDate,"+
"paymentsDate,shipmentDate,reportingDate,buyerEmail,buyerName,"+ ...
insert.Parameters.AddWithValue("@amazonorderId",lines[0]);
insert.Parameters.AddWithValue("@merchantOrderId",lines[1]);
insert.Parameters.AddWithValue("@shipmentId",lines[2]);
insert.Parameters.AddWithValue("@shipmentItemId",lines[3]);
insert.Parameters.AddWithValue("@amazonOrderItemId",lines[4]);
insert.Parameters.AddWithValue("@merchantOrderItemId",lines[5]);
insert.Parameters.AddWithValue("@purchaseDate",lines[6]);
insert.Parameters.AddWithValue("@paymentsDate",lines[7]);
insert.ExecuteNonQuery();
これがパラメーター化されたステートメントを使用する正しい方法であると仮定すると、それでもエラーが発生します
"Incorrect string value: '\xEF\xBF\xBD' for column 'buyerName' at row 1"
他のアイデアはありますか?