【发布时间】:2019-06-18 08:05:15
【问题描述】:
我在 sql 中有一个数据表,在 winform 中有一个 datagridview。数据表保存来自具有 MoldID 的模具的测量结果。对于每次测量,都会将 50 行结果记录到表中。为了跟踪同一模具的测量计数,我还有 MeasId 列,每个测量输入都会增加 1。请参阅图片以查看表格视图。 我需要做的是,仅检索带有最后一个 MeasID 的选择 MouldID(来自组合框)的行。 我尝试了以下代码,但我不知道如何使用 MeasId 对这些行进行分组。
using (LinqDataClassesDataContext dataContext = new
LinqDataClassesDataContext())
{
// attemp 1
var query=dataContext.SupplierVals
.Where(m=>m.MouldID==comboBMouldID.SelectedValue.ToString())
.OrderByDescending(m => m.MeasId).FirstOrDefault();
// attemp 2
var query=dataContext.SupplierVals
.Where(mr=>mr.MouldID==comboBMouldID.SelectedValue.ToString())
.OrderByDescending(mr => mr.MeasId).Select();
// attemp 3
var query = (from x in dataContext.SupplierVals
where x.MouldID == comboBMouldID.SelectedValue.ToString()
select x).First();
// attemp 4
var query = from x in dataContext.SupplierVals
where x.MouldID == comboBMouldID.SelectedValue.ToString()
group x by x.MeasId into grp
select grp.OrderByDescending(x => x.MeasId).First();
daGridUnused.AutoGenerateColumns = false;
daGridUnused.Columns["unusedShowDist"].DataPropertyName = "Distnc";
daGridUnused.Columns["unusedShowAper"].DataPropertyName = "Apert";
daGridUnused.Columns["unusedShowTap"].DataPropertyName = "Taper";
daGridUnused.DataSource = query;
}
这些查询都不会从数据表返回我需要的内容。 我做错了什么?
【问题讨论】:
-
整个项目都是用 linq 构建的,所以我现在有点坚持
-
" with last MeasID." 这是否意味着所有具有最高 MeasID 的条目中的最新条目?
-
@MongZhu 是的,没错。 MeasId 计数最高。
标签: c# winforms linq-to-sql