私は助けが必要です!私はコースのデータベース管理のためのソフトウェアを書いています。データを挿入してトランザクションを完了することはできません。私はウクライナ出身で、データベース上でウクライナのデータを使用していますが、トランザクションが完了していないエラー "不正な文字列値: '1行目の' User_name '列に' \ xD0 \ xB2 '}} System.Exception {MySql.Data .MySqlClient .MySqlException} "スタックオーバーフローのすべての記事を読みましたが、何も助けられませんでした。( SET NAMES 'utf8'(cp1251、utf8mb4、koi8r、win1251、cp866など)を使用しますが、何も動作しません開発環境上で符号化さ は私がMySql.Data.MySqlClientを使用したり、MYSQL.DLL コードを接続する - ?>不正な文字列値(C#Visual Studio 2015、MySQL Server 5.5(コンソール))
connStr = "server= localhost;user=root;charset=utf8mb4;database=DB_Journal;port=3306;password=masterkey;"conn = new MySqlConnection(connStr);
と挿入 - >
conn.Open();
string sql = "insert into Users(User_id, User_name, User_surname, User_fname, Login, UType_id, Password,Secret,Answer) values (null, '" +
textBox1.Text + "', '" + textBox2.Text + "', '"
+ textBox4.Text + "', '" + textBox3.Text + "', '"
+ usr + "', '" + pass + "', '"
+ richTextBox1.Text + "', '"
+ textBox7.Text + "')";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.ExecuteNonQuery();
を
(すみません、私はない正確に書くことができますが、私は一生懸命勉強)
最初に修正する必要があります。そのようなSQLを作成しないようにしてください。代わりにパラメータ化されたSQLを使用してください。それは問題をうまく解決するかもしれませんが、それ以外の場合は、SQL Injection Attackの脆弱性を詰めてしまいます。 –
まず、文字列を連結するのではなく、パラメータを変更するだけです。 SQLインジェクションの問題以外にも、文字列値やその他の文字に埋め込まれた引用符などの問題を解決し、構文上の問題を引き起こします。 –
この質問を確認する:http://stackoverflow.com/questions/10957238/incorrect-string-value-when-trying-to-insert-utf-8-into-mysql-via-jdbc – RedRight