[已解决问题] Ado.Net插入中文数据乱码问题
提问时间: 2008-07-23 16:59
浏览:188 次
这样子写,执行以后数据库中中文字符显示乱码,PS:Article_Subject 为NCHAR,Article_Content 为Ntext
strSql = "INSERT INTO Articles ([Article_Subject] ,[Article_Content] ,[Author_ID] ,[Post_Time]) VALUES ('测试','测试','FrancisLiu','"+DateTime.Today.ToShortDateString()+"')";
 SqlCommand cmd 
= new SqlCommand();
cmd.Connection 
= conn;
cmd.CommandText 
= strSql;
cmd.ExecuteNonQuery();
用 SqlParameter没问题的
strSql.Append("insert into [Articles](");
  strSql.Append(
"[article_Subject],[article_Content],[author_id],[post_time])");
            strSql.Append(
" values (");
            strSql.Append(
"@article_Subject,@article_Content,@author_id,@make_time,@sReply_count)");
            SqlParameter[] parameters 
= {
                    
new SqlParameter("@article_Subject", SqlDbType.NChar,40),
                    
new SqlParameter("@article_Content", SqlDbType.NText),
                    
new SqlParameter("@author_id", SqlDbType.NChar,10),
                    
new SqlParameter("@make_time", SqlDbType.NChar,25)
                  
            }
;
            parameters[
0].Value = model.article_Subject;
            parameters[
1].Value = model.article_Content;
            parameters[
2].Value = model.author_id;
       parameters[
3].Value = model.make_time;   


用Linq to sql也是没问题的

提问者:FrancisLiu - 初学一级
所有回答(4)
这个问题很怪呀,直接用strSql 在数据库的查询分析器中执行会怎么样呢?
2个月前   回答者:玉开 - 大侠五级
两个字段都是乱码吗? 你可以调试一下程序,在cmd.ExecuteNonQuery();这句上设置断点然后分别查看cmd.CommandText和strSql的值是什么,看是否有乱码存在,也就是在把命令发送到数据库前检查写入的数据是否有乱码。 如果没有,那么启动sql profile(事件探查器)看实际执行的语句是什么,是不是在从程序到数据库这个过程中出了问题。 怀疑你的程序编码方式和数据库编码不一致才造成这个问题
2个月前   回答者:丁学 - 专家六级
试试在字符串前加个N行不行.. strSql = "INSERT INTO Articles ([Article_Subject] ,[Article_Content] ,[Author_ID] ,[Post_Time]) VALUES (N'测试',N'测试','FrancisLiu','"+DateTime.Today.ToShortDateString()+"')";
2个月前   回答者:deerchao - 大侠五级
是单引号的问题吧,试试 strSql = @"INSERT INTO Articles ([Article_Subject] ,[Article_Content] ,[Author_ID] ,[Post_Time]) VALUES ('测试','测试','FrancisLiu','" +…… 或者把 ' 变成 \'
2个月前   回答者:刘勇飞 - 菜鸟二级
评论
2个月前   FrancisLiu :
直接插入没问题的
2个月前   FrancisLiu :
直接在Sql分析器插入没问题的
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关内容

相关链接