Vb.net 按多列分组

Vb.net 按多列分组,vb.net,linq,Vb.net,Linq,我不确定标题是否有误导性,但我不确定如何总结这一点 我在SQL DB中有一个表,其中有一条记录,如下所示: Dim cdc As New InternalCalibrationDataContext Dim allTargetvalues = (From i In cdc.int_calibration_records Where i.calibration_no = Request.QueryString(0) And

我不确定标题是否有误导性,但我不确定如何总结这一点

我在SQL DB中有一个表,其中有一条记录,如下所示:

Dim cdc As New InternalCalibrationDataContext
Dim allTargetvalues = (From i In cdc.int_calibration_records
                       Where i.calibration_no = Request.QueryString(0) And
                       i.calibration_date = Request.QueryString(1)
                       Select i.measure1_target, i.measure2_target, i.measure3_target).ToList()

我想在gridview中显示此项目的测量值,如下所示:

Dim cdc As New InternalCalibrationDataContext
Dim allTargetvalues = (From i In cdc.int_calibration_records
                       Where i.calibration_no = Request.QueryString(0) And
                       i.calibration_date = Request.QueryString(1)
                       Select i.measure1_target, i.measure2_target, i.measure3_target).ToList()

我考虑将目标值选择到列表中(实际值也是如此),如下所示:

Dim cdc As New InternalCalibrationDataContext
Dim allTargetvalues = (From i In cdc.int_calibration_records
                       Where i.calibration_no = Request.QueryString(0) And
                       i.calibration_date = Request.QueryString(1)
                       Select i.measure1_target, i.measure2_target, i.measure3_target).ToList()

然后以某种方式将列表连接在一起,尽管我不确定如何连接列表,或者即使这是正确的方法?

好吧,首先让我说,
measure1\u target
measure2\u target
等几乎总是表明数据库设计不好。这些可能位于另一个表中,作为与您发布的表的1对多关系的“多”端。因此,请回答您的一个问题:不,这不是正确的方法

在表的结构处于当前状态时,最好的选择可能是:

Dim cdc As New InternalCalibrationDataContext

Dim allTargetValues As New List(Of Whatever)
For Each targetValue In (From i In cdc.int_calibration_records
                         Where i.calibration_no = Request.QueryString(0) AndAlso
                               i.calibration_date = Request.QueryString(1)
                         Select i)

    allTargetValues.Add(New Whatever With {.MeasureNumber = 1,
                                           .Target = targetValue.measure1_target,
                                           .Actual = targetValue.measure1_actual })


    allTargetValues.Add(New Whatever With {.MeasureNumber = 2,
                                           .Target = targetValue.measure2_target,
                                           .Actual = targetValue.measure2_actual })

    allTargetValues.Add(New Whatever With {.MeasureNumber = 3,
                                           .Target = targetValue.measure3_target,
                                           .Actual = targetValue.measure3_actual })

Next
无论什么
类都是这样的:

Public Class Whatever
    Public Property MeasureNumber As Integer
    Public Property Target As Integer
    Public Property Actual As Integer
End Class

谢谢道格拉斯,很好用。老实说,我自己设计了这个表,我几乎没有设计数据库的经验,我可以帮上忙。您可能希望查看外键,下次您可以将其分成两个表,因为您实际上有两个单独的实体(例如校准和测量)。