这两天在写SQL语句向数据库中插入数据的时候竟然显示乱码,英文和数字显示正常.

首先我去确认数据表中字段的类型是否有建错,经过确认,字段我先的是Nvarchar类型的,这个是没有问题的,按道理说可以正常显示中文呀.

百度了一下,网上的解决方案都是说要设置网站的编码,可是按照这个设置了之后还是有乱码的问题,这个方法失败了.

经过再三确认发现,问题还是出现在SQL语法上,如果需要显示中文信息,就需要在要插入的值前加上字母"N",这样问题就解决了.

注:N表示unicode的意思,表示按unicode进行编码.

例如代码如下:

View Code
 1 string strsql1 = string.Format("insert into T_Blog(UserName,Password,Gender,ReallyName,Brithday,Address,PostCode,Subject,Email,HomePhone,MobiePhone,QQ,Question,Answer,RegTime,IP) values (N'{0}','{1}',N'{2}',N'{3}','{4}',N'{5}','{6}',N'{7}','{8}','{9}','{10}','{11}',N'{12}',N'{13}','{14}','{15}')"
2 , txtUserName.Text.Trim().ToString()
3 , txtRePwd.Text.Trim().ToString()
4 , ddlGender.SelectedValue.ToString()
5 , txtReallyName.Text.Trim().ToString()
6 , txtBrithday.Value.Trim().ToString()
7 , txtAddress.Text.Trim().ToString()
8 , txtPostCode.Text.Trim().ToString()
9 , txtSubject.Text.Trim().ToString()
10 , txtEmail.Text.Trim().ToString()
11 , txtHomePhone.Text.Trim().ToString()
12 , txtMobiePhone.Text.Trim().ToString()
13 , txtQQ.Text.Trim().ToString()
14 , txtQuestion.Text.Trim().ToString()
15 , txtAnswer.Text.Trim().ToString()
16 , DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")
17 , Request.UserHostAddress
18 );
posted on 2011-09-06 22:41  永远的麦子  阅读(3959)  评论(0编辑  收藏  举报