从c#server到mysql DB - 希伯来语问号

时间:2014-08-13 17:46:24

标签: c# mysql

我的服务器是用c#编写的,而DB是mysql。

我将web.config更改为:

    <globalization
 fileEncoding="utf-8"
 requestEncoding="utf-8"
 responseEncoding="utf-8"
 culture="he"
 uiCulture="he"
    />

在我的客户端html页面中:

<meta charset="utf-8">

在数据库本身中,排序规则为:utf8_general_ci(在模式中和表中)。

当我直接在DB中使用希伯来语字符在DB中编写插入查询时,没关系。

当我尝试从客户端插入希伯来语时,它会显示问号。 当我调试(客户端,服务器或数据库)时,一切都显示正常的字符。

conecttion string:

<add key="MySQLConn" value="Server=myhost;Database=mydb;User=myuser;Password=***;Charset=utf8;"/>

插入代码:

           MySqlConnection conn = new MySqlConnection(mConnString);
        try
        {
            conn.Open();
            MySqlCommand com = new MySqlCommand("sp_InsertCategory", conn);
            MySqlDataAdapter adap = new MySqlDataAdapter(com);
            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.AddWithValue("?pUserId", UserId);
            com.Parameters.AddWithValue("?pRestId", RestId);
            com.Parameters.AddWithValue("?pCategoryDesc", CatDesc);
            var result = com.ExecuteNonQuery();
            return result;
        }
        catch (Exception ex)
        {
            return -1;
        }
        finally { conn.Close(); }

1 个答案:

答案 0 :(得分:0)

如上所述更改了排序规则和web.config之后,我唯一没有改变的是DB中的过程。 所以,在改变之后:

pCategoryDescH varchar(300)

到此:

pCategoryDescH nvarchar(300)

终于有效了。

找到解决方案here