zoukankan      html  css  js  c++  java
  • Entity framework 插入修改数据乱码问题

    SQL Server中乱码解决方案:

    在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组件的方法)

    方案二:

    在设计器里更改有时会出现:

    Msg 5030, Level 16, State 2, Line 1
    无法用排他锁锁定该数据库,以执行该操作。
    Msg 5072, Level 16, State 1, Line 1
    ALTER DATABASE 失败。无法将数据库 'databasename' 的默认排序规则设置为 Chinese_PRC_CI_AS。

    脚本更改方法:

    ALTER DATABASE dbname SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    GO
    ALTER DATABASE dbname COLLATE CHINESE_PRC_CI_AS;
    GO
    ALTER DATABASE dbname SET MULTI_USER;
    GO

  • 相关阅读:
    《信息安全系统设计基础》实验中的问题总结
    20145233计算机病毒实践7之动态分析3
    20145233计算机病毒实践3之静态分析3
    20145233计算机病毒实践5之动静态分析
    20145233计算机病毒实践2之静态分析
    20145233计算机病毒实践1之静态工具介绍
    20145233计算机病毒实践十
    20145233计算机病毒实践九之IDA的使用
    20145233韩昊辰小组 课程设计中期检查
    20145233《网络对抗》Exp9 Web安全基础实践
  • 原文地址:https://www.cnblogs.com/KingStar/p/1756305.html
Copyright © 2011-2022 走看看