注册 登录
编程论坛 ASP.NET技术论坛

请教 VS 2008+MySQL 乱码问题???

找了又找 发布于 2010-03-20 17:02, 1834 次点击
请教 VS 2008 + MySQL 插入到数据库时,既然是乱码,编码都正确,如果数据库中是中文读取就没有问题,如果想插入中文就出现乱码问题,哪位前辈能帮忙指点一下哪里出来了问题呢,我个人认为可能是自己写的DBHelper类关系,但是我是第一次用MySQL 链接 vs 2008所以不知道哪里错误 。请指教
21 回复
#2
找了又找2010-03-20 17:05
如果我有事不在,请加我QQ 906203592
#3
找了又找2010-03-20 18:20
a
#4
misswang2010-03-20 21:02
估计是你的SQL有问题,不怎么支持中文。。。
#5
找了又找2010-03-20 21:09
没有呀,支持呀,我设置编码了
#6
ljun512010-03-20 21:33
设置的编码是什么呀
#7
找了又找2010-03-20 21:50
UTF-8呀在 web.config 中设置过,在页面上设置过
#8
aspic2010-03-21 09:33
最近怎么老有人喜欢用vs链接mysql
#9
找了又找2010-03-21 14:03
mysql 数据库便宜呀 比起 sql 2005的便宜差不多一半的价格呢,ACCESS不用花钱但是现在的人也很少有人会用的
#10
aspic2010-03-21 15:07
我用sqlite
#11
aspic2010-03-21 15:08
总不能因为猪比牛便宜就拿猪去拉车吧~跟mysql本身就不是很好的搭配
#12
找了又找2010-03-22 13:19
谁能告诉我 /etc/  这个文件再哪 我要具体位置,因为我真的是找不到它
#13
找了又找2010-03-22 13:21
回复 11楼 aspic
给人家做事,人家说什么就是什么呗,不是知道可以连接吗,谁知道会出这样的怪问题
#14
找了又找2010-03-22 14:34
搞了半天,原来服务器上是可以的。只是本地不可以
#15
czyzhuo2010-03-23 13:25
把中文插入数据库,前面都要加N才不会出现乱码
例:insert into t1 values(1,N'大家好')
#16
找了又找2010-03-24 12:47
回复 15楼 czyzhuo
这个要一定要试试,谢谢谢谢
#17
找了又找2010-03-24 12:53
回复 15楼 czyzhuo
如果是封装的方法,那么怎么办呢.
比如:
string sql =
                "INSERT tenterprisemessage (EntmesTitle,EntmesImg)" +
                "VALUES (@EntmesTitle,@EntmesImg)";

            sql += " ; SELECT @@IDENTITY";

            try
            {
                MySqlParameter[] para = new MySqlParameter[]
                {
                        new MySqlParameter("@EntmesTitle", tenterPriseMessage.EntmesTitle),
                        new MySqlParameter("@EntmesImg", tenterPriseMessage.EntmesImg                };

                int newId = (int)db.GetScalar(sql, para);
                return GetTenterPriseMessageById(newId);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw e;
            }


是不是要加到 :
new MySqlParameter("@EntmesTitle", tenterPriseMessage.EntmesTitle)
但是报错


请高手指教。
#18
czyzhuo2010-03-24 14:15
是加到INSERT的语名里,  
"INSERT tenterprisemessage (EntmesTitle,EntmesImg)" +
                "VALUES (@EntmesTitle,@EntmesImg)";

改成 "INSERT tenterprisemessage (EntmesTitle,EntmesImg)" +
                "VALUES (N'"+@EntmesTitle+"',@EntmesImg)";

@EntmesTitle这个是变量的话,应该可以这样写的
你试试吧

#19
sj8982010-03-25 11:02
有没有传参数或者是接收参数 如果有 在接收前 加上改变编码的代码。
#20
找了又找2010-03-26 08:54
在服务器上传中文数据就一点问题没有,在本机就不行,这些方法都试了,在本机还是不行。。。。
#21
hdyyl2010-03-26 16:50
你装MySql的时候有个编码设成gbk的就OK了
#22
找了又找2010-03-26 17:27
但是vs2008默认为UTF-8这样一改岂不是要改很多。很麻烦的
1