首页新闻找找看学习计划

遇到个SQL问题,需要把这句多表查询的SQL改成LINQ,但还是没思路,写出来了但查不出数据。求指教

0
悬赏园豆:20 [已解决问题] 解决于 2014-04-16 21:37
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

求帮忙。。  这里面的Select * from dep where DEP_CLASS=3 AND dep_all_code LIKE '" + depAll + "'  这句LIKE 怎么写?

我用了Contains和StartWith 都没用

许大虾的主页 许大虾 | 初学一级 | 园豆:12
提问于:2014-04-16 15:17
< >
分享
最佳答案
1

从内部往外部解开

1、dim query1= from c in person_limits

        where account.toupper=UserID

        select c.dep_code

2、dim query2= (from c in depview

        where query1.contains(c.DEP3)

        select c.dep3).distinct

3、不写了,就差一步,你自己往下...

收获园豆:20
爱编程的大叔 | 高人七级 |园豆:29841 | 2014-04-16 16:11

最后一句我是这样写的:

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;

 

但是查不出来啊

许大虾 | 园豆:12 (初学一级) | 2014-04-16 16:24

@许大虾: 

查不出来不能怪政府啊。

1、你可以看看出来的SQL语句是不是跟你那个差不多。

2、你可以在SQL SERVER PROFILE中看看执行的SQL语句。

3、可能你的数据就没有符合要求的呢?

4、其实你每一步都可以看看出来啥结果的,调试技巧这个每个程序员都要学会的啊。

5、....好象已经偏离了LINQ话题了..

爱编程的大叔 | 园豆:29841 (高人七级) | 2014-04-16 16:58
其他回答(2)
0

推荐你看看这个

http://www.cnblogs.com/humble/p/3320804.html

月明时勤 | 园豆:748 (小虾三级) | 2014-04-16 15:22

没学到什么,,,

支持(0) 反对(0) 许大虾 | 园豆:12 (初学一级) | 2014-04-16 15:24
0

先做子查询,把用结果来做主查询,不用写成1句.他会自己合成一句sql的

吴瑞祥 | 园豆:28729 (高人七级) | 2014-04-16 15:24

能写出来看看? 

支持(0) 反对(0) 许大虾 | 园豆:12 (初学一级) | 2014-04-16 15:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册