2016-12-16 4 views
0

Ich habe eine Winform und ein Textfeld, das den Wert auf eine vorbereitete Aussage wie dieseAussage wie Klausel mit chinesischen Zeichen

searchKey = "member_chinese_name"; 
field_name = "member_chinese_name"; 
daoQuery = "SELECT * FROM member where member_chinese_name like @" + searchKey; 

sqlCmd = new MySqlCommand(daoQuery, databaseConnection); 
MessageBox.Show(field_name + " " + field_value1); 
sqlCmd.Parameters.Add(new MySqlParameter("@"+field_name , field_value1 + "%")); 
sqlCmd.CommandTimeout = 60; 
sqlCmd.ExecuteNonQuery(); 

adapter.SelectCommand = sqlCmd; 
adapter.Fill(ds); 

die ganze Abfrage übergeben wird (select * from Mitglied wo member_chinese_name wie 中 文字% ;)

die Abfrage kein Ergebnis Lauf in meinem winform hat, aber ich laufe die sQL in phpMyAdmin (select * from Mitglied in dem member_chinese_name wie '中 文字%') gilt

Wer weiß, was ist das Problem?

Bemerkungen (Suche Englisch ok ist) für die Suche

+0

Es sollte von der Datenbank-Engine unterstützt etwas in den Standard-Locale oder Zeichensätze sein. Ich weiß nicht genug von MySql, um hier Abhilfe zu schaffen. Bitte fügen Sie das Tag MySql zu Ihrer Frage – Steve

+0

Vielleicht könnte diese Frage Ihnen helfen, auf Ihr Problem zu starten http://stackoverflow.com/questions/27940695/how-to-perform-mysql-fulltext-search-with-chine-characters – Steve

+2

Offtopic: Für was nennst du ExecuteNonQuery? Entfernen Sie es. –

Antwort

0

Das Problem könnte sein, die Parameter, die Sie senden. Es sollte @searchKey statt @" + searchKey; sein, und Sie können auch wählen, sqlCmd.Parameters.AddWithValue statt sqlCmd.Parameters.Add(new MySqlParameter so würde Code aussehen

searchKey = "member_chinese_name"; 
field_name = "member_chinese_name"; 
daoQuery = "SELECT * FROM member where member_chinese_name like @sKey"; 
sqlCmd = new MySqlCommand(daoQuery, databaseConnection); 
MessageBox.Show(field_name + " " + field_value1); 
//not sure which variable stores 中文字 
sqlCmd.Parameters.AddWithValue("@sKey", field_value1+"%"); 
Verwandte Themen