以前はSQL Server 2005をウェブサイトデータベースとして使用していますが、すべて正常に動作します。 今私はMySqlサーバーに変更しました。データベースはオープンソースであるためです。MySqlの例外:変数 'character_set_client'を 'utf16'の値に設定することはできません
私はNavicat Premiumを使用して、SQL Serverからmysqlに自分のデータを転送しました。私はデータベースを管理するためにmysqlのworkbenchとnavicatを使用します。 mysqlデータベースへの接続を宣言するときに問題が発生します。ここに私のコード:
MySqlCommand cmdselect;
MySqlConnection conNDB;
MySqlDataReader Mydtr;
string server = "localhost";
string database = "maindb";
string uid = "root";
string password = "abc123";
string strCon = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
string strSelect = "SELECT * FROM announcement";
conNDB = new MySqlConnection(strCon);
conNDB.Open();
cmdselect = new MySqlCommand(strSelect, conNDB);
Mydtr = cmdselect.ExecuteReader();
rptAnnounce.DataSource = Mydtr;
rptAnnounce.DataBind();
Mydtr.Close();
conNDB.Close();
MySql.Dataへの参照は既に設定されています。
例外の詳細:ここで私は、このエラーメッセージが表示されました MySql.Data.MySqlClient.MySqlException: 変数「character_set_clientは」 は エラーメッセージは、このエラーが発生述べた「UTF16」の値に設定することはできません接続中.Open();
私はエラーページをリフレッシュし続けると、いつか別のエラーが発生します。ここにある:
例外の詳細: エラーメッセージは、このエラーがMydtr = cmdselect.ExecuteReader()中に発生述べたデータパケットの期待終わり;:MySql.Data.MySqlClient.MySqlException
私はmysqlが初めてです。何が問題なのか分かりません。私はこの問題は、データベースの設定やデータから来て、私のソースコードではないと思います。
誰もが解決策を知っていますか?あなたの助けが大いに評価されます。私は4日間試してみましたが解決できません。
あなたのcharacter_set_client変数の値がデータベースにあることを確認してください。mysqlクエリを使用して表示することができます。 「文字%」のように表示されます –
RTEE、すべてがutf8に入っています。あなたのチュートリアルであなたの返信に投稿しました^^。 ここにリンクがあります:http://www.codeproject.com/Messages/3932728/Re-i-got-some-bugs.aspx –
私は同様の問題を遭遇しました。私の文字セットはlatin1でした。これは昔はデフォルトでした。問題のあるクエリのテーブルと列でutf8に変更され、問題は解決されました。なぜlatin1は、いくつかのテーブルがutf8で、他がlatin1であり、それがミックスを好きではないことを除いて、問題を引き起こすのではないかと確信している。 –