2010-11-12 48 views
1

我使用C#web服務從MySql數據庫插入,刪除和獲取數據。 問題是一些數據是在馬其頓(Cyrilic)。C#web服務,MySql編碼問題

當我直接插入數據庫時​​,它插入OK。例如:「дсд」是「дсд」。 當我插入服務時,它不是。例如:「дсд」是「???」。 當我嘗試通過服務獲取數據時,它可以正常工作。 插入有什麼問題?

這裏是我的代碼部分用於插入:

MySqlConnection connection = new MySqlConnection(MyConString); 
    MySqlCommand command = connection.CreateCommand(); 
    command.CommandText = "INSERT INTO user (id_user, name VALUES (NULL, ?name);"; 
    command.Parameters.Add("?name", MySqlDbType.VarChar).Value = name; 
    connection.Open(); 
    command.ExecuteReader(); 

    connection.Close(); 
    return thisrow; 

TNQü提前!

+1

也許在通過Web服務進行翻譯時丟失了某些內容,而不是在數據庫插入級別? – mellamokb 2010-11-12 19:26:05

+0

你有沒有想過呢?我正在將同一區域的C#Web服務挖掘到具有外語字符的MySQL數據庫。 – 2010-12-30 19:48:38

回答

2

該解決方案位於連接字符串中:MyConString =「SERVER = localhost;」 +「DATABASE = yourdatabase;」 +「charset = utf8;」;.

0

我會看看Web服務本身的編碼。問題可能在於將文本轉換爲SOAP字符串以發送到服務。字符串數據在.NET中默認是Unicode,所以一旦它到達Web服務,它應該沒問題。

要驗證是否存在這個問題,請將調試器附加到具有代碼段和seta斷點的方法,該方法在添加參數處或附近。您要分配給參數的字符串「名稱」應該在Watch或Locals窗口中正確顯示。如果沒有,您的代碼沒有收到您期望的字符串,這可能意味着您的客戶使用ASCII或ISO代碼頁進行編碼,而不是使用西里爾文。

+0

Web服務中的編碼正常。問題在於將數據從服務發送到數據庫的某個地方! – blabla 2010-11-12 19:28:21

+0

幫助請! :) – blabla 2010-11-13 18:28:56