为了账号安全,请及时绑定邮箱和手机立即绑定

asp.net sql语句中where条件存在中文在程序中取不出数据,在数据库中可以正常取值,数据库为oracle

asp.net sql语句中where条件存在中文在程序中取不出数据,在数据库中可以正常取值,数据库为oracle

慕虎7371278 2018-12-07 11:51:55
sql 语句如下: string sql = string.Format(@"SELECT FHANDLEDATE,FNAME_L2,CFHANDLEDONE,FHANDLEPERSON FROM CT_QUE_PROBLEMVIEW INNER JOIN CT_QUE_PROBLEMVIEWENTRY ON CT_QUE_PROBLEMVIEW.FID = CT_QUE_PROBLEMVIEWENTRY.FPARENTID INNER JOIN CT_QUE_PROBLEMVIEWENTRYS2 ON CT_QUE_PROBLEMVIEW.FID=CT_QUE_PROBLEMVIEWENTRYS2.FPARENTIDINNER JOIN T_ORG_SALE ON CT_QUE_PROBLEMVIEW.FDEPARTMENTID = T_ORG_SALE.FID WHERE CFHANDLEDONE IN (N'完成',N'受理',N'勘察') AND CT_QUE_PROBLEMVIEW.FNUMBER='{0}' ORDER BY FHANDLEDATE ", number); 下面的这句where条件存在中文,所以在asp.net中取不出数据,我把CFHANDLEDONE IN (N'完成',N'受理',N'勘察')去掉可以取出数据,但不符合客户要求,数据库为oracle,并且方法oracle查询窗口可以正常取数据,所以语句不存在问题。 ----------------------------------------------------------------------------------------------WHERE CFHANDLEDONE IN (N'完成',N'受理',N'勘察') AND CT_QUE_PROBLEMVIEW.FNUMBER='{0}' ORDER BY FHANDLEDATE ", number);
查看完整描述

8 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

因为存储字符串的时候常常会产生空格。所以楼主的问题可能是空格的问题,可以改用like试试。(nvarchar可变长度应该不会产生空格???)
查看完整回答
反对 回复 2018-12-09
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

不标注Unicode ,不加N呢?是什么结果?  CFHANDLEDONE IN ('完成','受理','勘察') 
查看完整回答
反对 回复 2018-12-09
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

好长的sql
查看完整回答
反对 回复 2018-12-09
?
DIEA

TA贡献1820条经验 获得超2个赞

问题已解决,在配置文件的连接字符串中写Unicode=true,问题解决
查看完整回答
反对 回复 2018-12-09
?
慕容森

TA贡献1853条经验 获得超18个赞

此乃正解!
查看完整回答
反对 回复 2018-12-09
  • 8 回答
  • 0 关注
  • 316 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信