这样改写哪错了?求指教。一直查不出数据

LINQQQQ1 2014-04-16 04:48:34
string strSql_dep = "Select * from dep where DEP_CLASS=3 AND dep_all_code LIKE '" + depAll + "' AND dep_code in (SELECT DISTINCT DEP3 FROM depview WHERE dep3 in (SELECT dep_code FROM person_limits WHERE upper(account)='" + UserID + "') )Order By LDAP

这是改完后的LINQ:
var query1 = from c in PERSON_LIMITS
where c.ACCOUNT.ToUpper() == uid
select c.DEP_CODE;
var query2 = (from c in DEPVIEW
where query1.Contains(c.DEP3)
select c.DEP3).Distinct();
var result = from c in DEP
where c.DEP_CLASS == 3 && c.DEP_ALL_CODE.StartsWith(depAll) && query2.Contains(c.DEP_CODE)
orderby c.LDAP
select c;
return result;

depAll 这个取得的值的 /20000/221111/% ,,数据一直查不出来 求大神指教
...全文
6159 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LINQQQQ1 2014-04-16
  • 打赏
  • 举报
回复
引用 5 楼 q107770540 的回复:
放到SQL查询分析器内执行一下,看有没有结果出现
把那一串放到SQL里执行?会报错 无效的命令
LINQQQQ1 2014-04-16
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
query1.Distinct() 后就是query2了吧 debug 看看query1内有没有数据 linq to sql 是不支持 toupper的,可以这样:
var query1 = from c in PERSON_LIMITS
                          where String.Equals(c.ACCOUNT,  uid, StringComparison.OrdinalIgnoreCase)
                          select c.DEP_CODE;
为方法“Boolean Equals(System.String, System.String, System.StringComparison)”的调用提供的参数的数量不正确 这样写会有这个错
q107770540 2014-04-16
  • 打赏
  • 举报
回复
放到SQL查询分析器内执行一下,看有没有结果出现
LINQQQQ1 2014-04-16
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
先确认你在数据库中能查到数据吗,然后可以把linq中的条件一个个的试试,看看是哪个条件导致数据选不出来
调试后的RESULT 的SQL {SELECT "Project4"."DEP_CODE" AS "DEP_CODE", "Project4"."DEP_NAME" AS "DEP_NAME", "Project4"."DEP_UP" AS "DEP_UP", "Project4"."DEP_CLASS" AS "DEP_CLASS", "Project4"."DEP_SERNO" AS "DEP_SERNO", "Project4"."DEP_ALL_CODE" AS "DEP_ALL_CODE", "Project4"."DEP_ALL_NAME" AS "DEP_ALL_NAME", "Project4"."SECTION" AS "SECTION", "Project4"."DEP_SERVER_IP" AS "DEP_SERVER_IP", "Project4"."DEP_SERVER2_IP" AS "DEP_SERVER2_IP", "Project4"."DEP_STATUS" AS "DEP_STATUS", "Project4"."DEP_SHOW" AS "DEP_SHOW", "Project4"."SERVICE_ADD" AS "SERVICE_ADD", "Project4"."REMARK" AS "REMARK", "Project4"."URL" AS "URL", "Project4"."START_DATE" AS "START_DATE", "Project4"."ROOM_ID" AS "ROOM_ID", "Project4"."MPLAY_TYPE" AS "MPLAY_TYPE", "Project4"."PRODUCTID" AS "PRODUCTID", "Project4"."CREATE_ACCOUNT" AS "CREATE_ACCOUNT", "Project4"."CODEID" AS "CODEID", "Project4"."DEP_ADDRESS" AS "DEP_ADDRESS", "Project4"."DEP_POSITION" AS "DEP_POSITION", "Project4"."DEP_TEL" AS "DEP_TEL", "Project4"."DEP_FAX" AS "DEP_FAX", "Project4"."DEP_IMG" AS "DEP_IMG", "Project4"."MAIN_DEPCODE" AS "MAIN_DEPCODE", "Project4"."MAIN_DEP_ALL_CODE" AS "MAIN_DEP_ALL_CODE", "Project4"."MAIN_DEP_ALL_NAME" AS "MAIN_DEP_ALL_NAME", "Project4"."CATEGORYID" AS "CATEGORYID", "Project4"."LDAP2" AS "LDAP2", "Project4"."SHOW_SORT" AS "SHOW_SORT", "Project4"."DOWNLOAD_IP" AS "DOWNLOAD_IP", "Project4"."LDAP" AS "LDAP", "Project4"."AREANAME" AS "AREANAME", "Project4"."PARENTLDAP" AS "PARENTLDAP", "Project4"."PATHIMAGE" AS "PATHIMAGE", "Project4"."ISOPENIR" AS "ISOPENIR" FROM ( SELECT "Extent1"."DEP_CODE" AS "DEP_CODE", "Extent1"."DEP_NAME" AS "DEP_NAME", "Extent1"."DEP_UP" AS "DEP_UP", "Extent1"."DEP_CLASS" AS "DEP_CLASS", "Extent1"."DEP_SERNO" AS "DEP_SERNO", "Extent1"."DEP_ALL_CODE" AS "DEP_ALL_CODE", "Extent1"."DEP_ALL_NAME" AS "DEP_ALL_NAME", "Extent1"."SECTION" AS "SECTION", "Extent1"."DEP_SERVER_IP" AS "DEP_SERVER_IP", "Extent1"."DEP_SERVER2_IP" AS "DEP_SERVER2_IP", "Extent1"."DEP_STATUS" AS "DEP_STATUS", "Extent1"."DEP_SHOW" AS "DEP_SHOW", "Extent1"."SERVICE_ADD" AS "SERVICE_ADD", "Extent1"."REMARK" AS "REMARK", "Extent1"."URL" AS "URL", "Extent1"."START_DATE" AS "START_DATE", "Extent1"."ROOM_ID" AS "ROOM_ID", "Extent1"."MPLAY_TYPE" AS "MPLAY_TYPE", "Extent1"."PRODUCTID" AS "PRODUCTID", "Extent1"."CREATE_ACCOUNT" AS "CREATE_ACCOUNT", "Extent1"."CODEID" AS "CODEID", "Extent1"."DEP_ADDRESS" AS "DEP_ADDRESS", "Extent1"."DEP_POSITION" AS "DEP_POSITION", "Extent1"."DEP_TEL" AS "DEP_TEL", "Extent1"."DEP_FAX" AS "DEP_FAX", "Extent1"."DEP_IMG" AS "DEP_IMG", "Extent1"."MAIN_DEPCODE" AS "MAIN_DEPCODE", "Extent1"."MAIN_DEP_ALL_CODE" AS "MAIN_DEP_ALL_CODE", "Extent1"."MAIN_DEP_ALL_NAME" AS "MAIN_DEP_ALL_NAME", "Extent1"."CATEGORYID" AS "CATEGORYID", "Extent1"."LDAP2" AS "LDAP2", "Extent1"."SHOW_SORT" AS "SHOW_SORT", "Extent1"."DOWNLOAD_IP" AS "DOWNLOAD_IP", "Extent1"."LDAP" AS "LDAP", "Extent1"."AREANAME" AS "AREANAME", "Extent1"."PARENTLDAP" AS "PARENTLDAP", "Extent1"."PATHIMAGE" AS "PATHIMAGE", "Extent1"."ISOPENIR" AS "ISOPENIR" FROM "IQS"."DEP" "Extent1" WHERE ((3 = "Extent1"."DEP_CLASS") AND ("Extent1"."DEP_ALL_CODE" LIKE :p__linq__0 ESCAPE '\') AND ( EXISTS (SELECT 1 AS "C1" FROM ( SELECT DISTINCT "Extent2"."DEP3" AS "DEP3" FROM (SELECT "DEPVIEW"."DEP1" AS "DEP1", "DEPVIEW"."DEPNAME1" AS "DEPNAME1", "DEPVIEW"."DEP2" AS "DEP2", "DEPVIEW"."DEPNAME2" AS "DEPNAME2", "DEPVIEW"."DEP3" AS "DEP3", "DEPVIEW"."DEPNAME3" AS "DEPNAME3" FROM "IQS"."DEPVIEW" "DEPVIEW") "Extent2" WHERE ( EXISTS (SELECT 1 AS "C1" FROM "IQS"."PERSON_LIMITS" "Extent3" WHERE (((UPPER("Extent3"."ACCOUNT")) = :p__linq__1) AND ("Extent3"."DEP_CODE" = "Extent2"."DEP3")) )) ) "Distinct1" WHERE ("Distinct1"."DEP3" = "Extent1"."DEP_CODE") ))) ) "Project4" ORDER BY "Project4"."LDAP" ASC} 这样怎么查
q107770540 2014-04-16
  • 打赏
  • 举报
回复
query1.Distinct() 后就是query2了吧

debug 看看query1内有没有数据


linq to sql 是不支持 toupper的,可以这样:


var query1 = from c in PERSON_LIMITS
where String.Equals(c.ACCOUNT, uid, StringComparison.OrdinalIgnoreCase)
select c.DEP_CODE;
bdmh 2014-04-16
  • 打赏
  • 举报
回复
先确认你在数据库中能查到数据吗,然后可以把linq中的条件一个个的试试,看看是哪个条件导致数据选不出来

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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