英文版数据库存入中文乱码问题

flers 2007-09-17 06:24:24
在项目中使用了英文版的ms sql server后,用SqlCommand的Parameter
做为参数执行insert后发现数据库存的是乱码,而不是中文字符,该如何处理呢?
可以这相insert t values(N'式');
但我现在统一用参数方式Parameter来处理,不知道如何解决这个问题。
...全文
210 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shangxin200093 2007-09-18
  • 打赏
  • 举报
回复
那你就把N去掉试下看看啊,虽然我也不知道怎么解决但是如果是用集合传参的话应该不用N,或者你加个@
flers 2007-09-18
  • 打赏
  • 举报
回复
跟踪的结果是:
exec sp_executesql N'INSERT INTO T_SNETCategory([SNETTypeID],[SNETCategoryName]) VALUES (@SNETTypeID,@SNETCategoryName);SELECT SCOPE_IDENTITY()',N'@SNETTypeID int,@SNETCategoryName
varchar(3)',@SNETTypeID=31,@SNETCategoryName='???'

但我单步调试@SNETCategoryName = "搞笑"是正常,到了sql这端就成乱码了
flers 2007-09-18
  • 打赏
  • 举报
回复
我用的是nvarchar
我单独用N'式式'这样是可以的,但是我现在是用的SqlCommand的Parameter来赋值,
myParameter.value = N'工期'
这样会出错
xray2005 2007-09-18
  • 打赏
  • 举报
回复
我的也是E文的也没问题
LZ看看你的字段是不是nvarchar的?如果是的话,那就N'xx这样了.如果是varchar的话,直接插入中文就可以了啊
yangjia21_2007 2007-09-18
  • 打赏
  • 举报
回复
还是问专业人事啊 我们一直用的也是英文版的 也没有问题
liujiayu10 2007-09-18
  • 打赏
  • 举报
回复
去数据库版问一下呢
cyy1981 2007-09-18
  • 打赏
  • 举报
回复
我们项目都是用英文版的数据库,但没出现搂住的问题
你设置一下数据库属性里的一些关于编码的咚咚
flers 2007-09-18
  • 打赏
  • 举报
回复
up..............
Oceanson 2007-09-18
  • 打赏
  • 举报
回复
----------------------------------------------------------------------------------
我用的是nvarchar
我单独用N'式式'这样是可以的,但是我现在是用的SqlCommand的Parameter来赋值,
myParameter.value = N'工期'
这样会出错
----------------------------------------------------------------------------------
这是必然的,但是如果要编码强制认中文只能这样写。
解决方案是使用存储过程或者直接执行写成sql语句的command. 即commandType = Text的那种方式。
推荐使用存储过程,这类东西在存储过程中处理。
Tensionli 2007-09-18
  • 打赏
  • 举报
回复
直接写SQL语句呢
Miamiiii 2007-09-18
  • 打赏
  • 举报
回复
关注一下

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧