首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net 用 mysql数据库,编码有关问题 ,存入数据库为问号

2013-01-11 
asp.net 用 mysql数据库,编码问题 ,存入数据库为问号用 asp.net写了个插入语句,中文在插入数据库以后都变

asp.net 用 mysql数据库,编码问题 ,存入数据库为问号
用 asp.net写了个插入语句,中文在插入数据库以后都变成了 问号(?)






MySqlobj mys = new MySqlobj(); 
string sqlstr = "insert into test (flag) VALUES ('中文')";
mys.ExecuteNonQuery(sqlstr);





#region 执行插入或删除操作
        public int ExecuteNonQuery(string sqlString)
        {
            int ret = 0;
            com.CommandText = sqlString;
            com.CommandType = CommandType.Text;
            try
            {
                ret = com.ExecuteNonQuery();
            }
            catch (Exception ee)
            {
                string ss = ee.Message;
                ret = -1;
            }
            finally
            {
                com.Dispose();
            }

            return ret;
        }
        #endregion









 

mysql是 utf-8的

asp.net在 web.conig里面设置了
   <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>


[解决办法]
1.确定数据库是utf-8及表也是utf-8格式
2.Data Source={0};User ID={1};Password={2};Initial Catalog={3};character set=utf8;Pooling=true;Allow Zero Datetime=true
数据库链接字符加上 character set=utf8;Pooling=true;Allow Zero Datetime=true
[解决办法]
尽管你将MySQL数据库配置为utf8,尽管你的c#程序员运行在.net虚拟机上是unicode编码,但是许多MySQL驱动是基于ANSI Ascii编码的。

尽量使用.net平台中与ado.net配套的驱动,不要随便用第三方驱动。
[解决办法]
MYsql安装目录下有个my.ini文件,里面可以配置编码为utf-8。重启mysql服务应该就行了。
[解决办法]

去my.ini改变字符编码utf-8
或者直接执行MySql Server Instance Config Wizard向导,改变字符编码。这个是全局的。
[解决办法]
mysql不熟,以前用过一个国外的免费服务器,数据库是sql server,插入中文时出现和楼主一样的问题,后来把sql语句改为:"insert into test (flag) VALUES (N'中文')" 这样就可以了。

热点排行