Sql Server Varchar类型中文乱码问题的解决办法-will.miao
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


Sql Server Varchar类型中文乱码问题的解决办法

发表时间:2017/3/26 10:30:08 评论(0) 浏览(9730)  评论 | 加入收藏 | 复制
   
摘 要:在Sql Server2005英文版中,如果未对Varchar类型的字段进行设置,那么很多朋友会发现向数据库中插入记录时,如果对应的varchar类型字段的值为中文,会出现乱码的情况。解决办法:使用nvarchar类型,并在插入值前加N,例如:insert into tableA (a) values(N'中文')。
原文地址:http://www.aspxba.com/html/2009-03/3449.html
在Sql Server2005英文版中,如果未对Varchar类型的字段进行设置,那么很多朋友会发现向数据库中插入记录时,如果对应的varchar类型字段的值为中文,会出现乱码的情况。解决办法:使用nvarchar类型,并在插入值前加N,例如:insert into tableA (a) values(N'中文')。
 
正 文:

如果确实要使用varchar类型的话,可以这样做:
1.

安装时不要选 Hide advice configuration  options

然后再 Collation designator and order  中选择 Chinese_PRC 就可以了。

2:

在建表时指明某个字段的语言

方法 COLLATE Chinese_PRC_CS_AS_WS

示例:

create table test
(
a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL, 
b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL 
)

insert test values('中文','中文')

插入后 字段 a 为 中文 ,b 为 ??

 

若是使用存储过程插入数据的话,需要将对应的参数类型改为nvarchar。

示例:
create PROCEDURE [dbo].[export_Create]

@C_HM nvarchar(128) 
AS 
Insert INTO export 
([C_CCH]) 
values 
(@C_HM)

在表格中,C_CCH为varchar类型。

同时在调用存储过程的.net代码中,也需要将对应的参数类型选为:System.Data.SqlDbType.NVarChar。

示例:

Database.MakeInParam("@C_HM",System.Data.SqlDbType.NVarChar,128,guanTongInfo.CHM)。(Database.MakeInParam为DataAccess2.0组件的方法)


Access软件网交流QQ群(群号:198465573)
 
 相关文章
无需专业软件转换代码中日文乱码  【江羽  2010/4/30】
【Access源码】xmlhttp中文返回乱码解决办法  【漏蛧尐魚℡  2013/4/25】
快速开发平台--繁体版显示树控件菜单为乱码的解决方法  【红尘如烟  2014/4/1】
【Access开发平台】 2.1.1版日期控件乱码问题  【杨雪  2015/7/7】
常见问答
技术分类
相关资源
文章搜索
关于作者

will.miao

文章分类

文章存档

友情链接