我正在尝试从数据表中检索多列,但只能从一行中检索 - 然后根据这些结果设置属性。 我已经弄清楚了如何运行多个查询来一次获取单个列,但必须有一种方法将它们全部合并到一个查询中。
以下是我认为可能有效的方法:
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
。等。
我猜我错过了一些很明显的东西——有人有建议吗?
提前谢谢。
我想你正在寻找这个:
Dim colSettingsQry = ... (your query)
Dim setting = colSettingsQry.FirstOrDefault()
If setting IsNot Nothing Then
gridCol.SortExpression = setting.SortExpression
gridCol.HeaderText = setting.HeaderText
...
EndIf
通过FirstOrDefault
,如果有的话,您可以获取序列的第一个元素,否则Nothing
.