选择具有多个条件的记录

时间:2015-06-08 10:36:01

标签: c# .net

我有一个带有两条记录的数据表。跟随命令

DataRow maxRow = ds.Tables["EduPers"].Select("EduID = MAX(EduID)").SingleOrDefault();

工作正常,但我需要它的这个命令不起作用

 st = "EduID = MAX(EduID) and EduId <" + MaxId;
 maxRow = ds.Tables["EduPers"].Select(st).SingleOrDefault();

它带来了null,它错了,因为它必须获取第二个记录。 怎么了? 谢谢

1 个答案:

答案 0 :(得分:0)

这不是真实情况,总是假的! Max(EduId)是在第一个条件下给予EduId的唯一编号。在第二个条件下,你说EduId应该低于EduId!这是错的。如果你的意思是EduId在一些小于数字的EduId中是最大的,你可以这样做:

st = "EduId <" + MaxId;
var rows = ds.Tables["EduPers"].Select(st).AsEnumerable();    
var maxRows = rows.Max(e => e.Field<int>("EduId"));