首页 新闻 会员 周边

Linq 连接查询

0
悬赏园豆:20 [已解决问题] 解决于 2014-01-14 10:01

有两个表,第一个User (id,name,no);第二个Score(id,no,sco)

其中第二个表的no是第一个表的no,

现在想查找满足sco>60的所有人的记录,怎么写Linq呢

GhostRider_zkc的主页 GhostRider_zkc | 初学一级 | 园豆:18
提问于:2013-12-27 16:38
< >
分享
最佳答案
0

using db= new DataContext(ConnectionString)

var query= From c in db.User

      join d in db.Score

      on c.no equals d.no

      where d.sco>60

      select c

end using

上面是连接到数据库的写法,

如果你的User和Score已经是有数据的,就不需要DB

不好意思,这里面VB.NET和C#语法都有,你将就着看吧。

收获园豆:20
爱编程的大叔 | 高人七级 |园豆:30839 | 2013-12-27 16:48

如何让每个学生记录只出现一次,不要像截图那样每个学生出现多次

GhostRider_zkc | 园豆:18 (初学一级) | 2013-12-28 09:42

@GhostRider_zkc: 

这个问题你好像另外起了一个博问,我也回答你了。再回答一次

var query= from c in db.User

                 where (from d in db.Score

                           where d.sco>60

                            select d.no).Contains(c.No)

                 select c

爱编程的大叔 | 园豆:30839 (高人七级) | 2013-12-30 17:20
其他回答(1)
0
            using(var db=new ManagerEntities())
            {
                var result = from sc in db.SC
                             join user in db.Student on sc.Sno equals user.Sno
                             where sc.Score>60
                             select new
                             {
                                 id = user.Sno,
                                 name = user.Sname,
                                 score = sc.Score,
                             };

                foreach (var sut in result)
                {
                    Console.WriteLine(sut.id +"  "+ sut.name +"  "+ sut.score); 
                }
            }
遥远的守望 | 园豆:96 (初学一级) | 2013-12-27 17:26

如何让每个学生记录只出现一次,不要像截图那样每个学生出现多次

支持(0) 反对(0) GhostRider_zkc | 园豆:18 (初学一级) | 2013-12-28 09:38

@GhostRider_zkc: 这个可以用关键字取消,还是数据库的问题,设计的时候多注意一下~

支持(0) 反对(0) 遥远的守望 | 园豆:96 (初学一级) | 2013-12-28 15:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册