日期:2014-05-20  浏览次数:20761 次

关于LINQ插入数据时字段值前加N的问题
最近给一客户开发一网站,本地测试已没有问题,放到美国服务器后出现乱码问题,后调查为美国服务器的数据库编码问题,数据库中显示,只要插入数据为中文的全为问号,经测试在插入数据时值前面加上N可以解决该问题,比如:
insert into Category(CategoryId,CategoryName) values (1001,N'食品'),显示正常,目前项目里边使用的是Linq操作数据,不知如何解决这问题,尝试很多办法,都没成功,求帮助。
------最佳解决方案--------------------
最简单的方法 考虑修改数据库表的字段格式,将varchar 改为nvarchar
------其他解决方案--------------------
如果
N'食品'),显示正常
的话
有可能是程序编码设置的问题

把web.config的编码调整下,
------其他解决方案--------------------
引用:
最简单的方法 考虑修改数据库表的字段格式,将varchar 改为nvarchar

问题已经解决,数据库表是改成nvarchar类型是可以的,这个其实早就改过了,只是那时同时又改了页面编码反而显示不对了,以为改成nvarchar类型还是无效,后来多次尝试,把页面编码去了就正常了,另外还有一种方法是可以执行Linq的ExcuteCommand命令,直接执行SQL语句也行。
------其他解决方案--------------------
直接定义类型为 nvarchar