2013-04-16 193 views
0

WHERE status ='โกดัง'「我試試這個不行(這是utf8(泰文))我需要在C#中設置一些東西來使它知道是utf8還是導致我不能用 'โกดัง'c#mysql select where where條件

我使用C#和MySQL的代碼是工作,直到我填的WHERE狀態= 'โกดัง' 前字符串聲明cmdtext = 「SELECT * FROM trackingbymail」;它的工作

String str = @"server=localhost;database=asianimport;userid=tga;password=se57ui849;"; 


String cmdText = "SELECT * FROM trackingbymail WHERE status= 'โกดัง' "; 
       MySqlCommand cmd = new MySqlCommand(cmdText, con); 
       MySqlDataReader reader = cmd.ExecuteReader(); 
+1

「它不起作用」你介意多描述一下嗎? – tnw

+2

檢查你的數據庫的排序規則和字符集http://stackoverflow.com/questions/11170133/using-mysql-with-django-access-denied-for-user-localhost/11170252#11170252 – matcheek

+0

該代碼是工作,直到我在String cmdText =「SELECT * FROM trackingbymail」之前填寫WHERE status ='โกดัง';它工作 – user2277775

回答

2
  1. 確保您的數據庫表的排序規則是UTF-8排序規則(即utf8_general_ci或其關係之一)

  2. Charset=utf8;添加到您的連接字符串。

「Server = localhost; Database = test; Uid = test; Pwd = test; Charset = utf8;」

來源:MySQL C# Text Encoding Problems

無論如何,如果解決不了,你可以存儲字節,而不是字符串。但很有可能不是解決的最好方法......

UTF8Encoding utf8 = new UTF8Encoding(); 
string unicodeString = "โกดัง"; 
byte[] encodedBytes = utf8.GetBytes(unicodeString); 

那麼當你需要,你可以回字符串:

Encoding.UTF8.GetString(encodedBytes); 
+0

這是工作謝謝 – user2277775

0

您應該將源代碼文件保存爲UTF-8 。

你試過這個嗎?