C# 选择具有多个条件的记录

C# 选择具有多个条件的记录,c#,.net,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(); st=“EduID=MAX(Ed

我有一个数据表,其中有两条记录

DataRow maxRow = ds.Tables["EduPers"].Select("EduID = MAX(EduID)").SingleOrDefault();
这很好,但我需要的这个命令不起作用

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

st=“EduID=MAX(EduID)和EduID这不是真的条件,总是假的!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"));

st=“EduId这不是真实情况,总是错误的!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"));

st=“EduId您指定的条件似乎无法满足(确保您必须说明
MaxId
包含的内容)。正如@collapsar所说,也许你应该改变你的条件。是的。你的条件是矛盾的。我还建议你使用EF+Linq to Entities来使用此类查询。你必须告诉条件中的
MaxId
。你指定的条件似乎不可满足(你必须告诉
MaxId
包含的内容)。正如@collapsar所说,也许你应该改变你的条件。是的。你的条件是矛盾的。我还建议你使用EF+Linq to Entities来使用此类查询。你必须告诉条件中的
MaxId
。你指定的条件似乎不可满足(你必须告诉
MaxId
包含的内容)。正如@collapsar所说,也许你应该改变你的条件。是的。你的条件是矛盾的。我还建议你使用EF+Linq to Entities来使用此类查询。你必须告诉条件中的
MaxId
。当然,我做了。但是没有成功。当然,我做了。但是没有成功。当然,我做了。但是没有成功。