0

我正在尝试从数据表中检索多列,但只能从单行中检索——然后根据这些结果设置属性。我已经想出了如何运行多个查询来一次获取单个列,但是必须有一种方法可以将它们全部组合到一个查询中。

这是我认为可能有效的方法:

Dim colSettingsQry = From r In Me.GridProcColumnSettings.AsEnumerable _
                     Where r("DataFieldNm") = colNm _
                     Select New With _
                     { _
                        .uniqueNm = r.Field(Of String)("UniqueNm").Single(), _
                        .sortExpression = r.Field(Of String)("SortExpression").Single(), _
                        .headerTxt = r.Field(Of String)("HeaderTxt").Single(), _
                        .headerStyleWidth = r.Field(Of String)("HeaderStyleWidth").Single(), _
                        .dataFormatString = r.Field(Of String)("DataFormatTxt").Single() _
                     }

gridCol.SortExpression = From c In colSettingsQry _
                         Select c.sortExpression

gridCol.HeaderText = From c In colSettingsQry _
                     Select c.headerTxt

... ETC。

我猜我缺少一些很明显的东西-有人有建议吗?

提前致谢。

4

1 回答 1

0

我想你正在寻找这个:

Dim colSettingsQry = ... (your query)
Dim setting = colSettingsQry.FirstOrDefault()

If setting IsNot Nothing Then
    gridCol.SortExpression = setting.SortExpression
    gridCol.HeaderText = setting.HeaderText
    ...
EndIf

FirstOrDefault如果有,则取序列的第一个元素,否则Nothing

于 2013-09-27T12:31:24.627 回答