我有一个带有两条记录的数据表。跟随命令
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,它错了,因为它必须获取第二个记录。 怎么了? 谢谢
答案 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"));