热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> 数据库>>正文内容

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

发布时间:2009年03月03日点击数: 未知
在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组件的方法)

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作