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

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);
慕虎7371278
浏览 317回答 8
8回答

慕侠2389804

因为存储字符串的时候常常会产生空格。所以楼主的问题可能是空格的问题,可以改用like试试。(nvarchar可变长度应该不会产生空格???)

斯蒂芬大帝

不标注Unicode ,不加N呢?是什么结果?  CFHANDLEDONE IN ('完成','受理','勘察') 

慕码人8056858

好长的sql

DIEA

问题已解决,在配置文件的连接字符串中写Unicode=true,问题解决

慕容森

此乃正解!
打开App,查看更多内容
随时随地看视频慕课网APP