第一次发帖提问,所以如果我做错了,我会提前道歉。
我有一个寡妇表单应用程序,其中包含一个列表框供用户进行一个或多个选择。这会提供LINQ查询以返回所需的数据。当用户进行单数选择时,查询起作用,但是当选择多个条目时,查询返回0结果。
以下是查询:
assets = From anitem In myTable
Where String.Equals(cboStatus.SelectedItem.ToString,
anitem.Field(Of String)("Status"),
StringComparison.OrdinalIgnoreCase) _
And Integer.Parse(anitem.Field(Of String)("Days Late")) <= intDays _
And Enumerable.Range(0, facilities.Count).All(Function(i) _
anitem.Field(Of String)("Facility").Contains(facilities(i))) _
Select anitem
Order By Integer.Parse(anitem.Field(Of String)("Days Late")) Ascending
Select Facility = anitem.Field(Of String)("Facility"), _
Zone = anitem.Field(Of String)("Zone"), _
Building = anitem.Field(Of String)("Building"), _
Floor = anitem.Field(Of String)("Floor"), _
DeviceName = anitem.Field(Of String)("Device_Name"), _
FullName = anitem.Field(Of String)("Full Device Name"), _
DaysLate = Integer.Parse(anitem.Field(Of String)("Days Late")), _
Status = anitem.Field(Of String)("Status"), _
UserName = anitem.Field(Of String)("Username"), _
Assignment = anitem.Field(Of String)("Assignment"), _
ResponsibleParty = anitem.Field(Of String)("ResponsiblePartyName")
我认为问题出在代码的“And Enumerable.Range ...”部分。
作为标准使用的3件事是我需要返回超过天数,给定状态和任何选定位置的所有记录的天数,状态和位置。
我认为我很亲密,但我错过了一些东西,希望有人可以帮忙。
答案 0 :(得分:0)
您确定以正确的方式使用.Contains
吗?如果你这样写会怎么样?我相信facilities
是您所选位置的列表?
assets = From anitem In myTable
Where String.Equals(cboStatus.SelectedItem.ToString,
anitem.Field(Of String)("Status"),
StringComparison.OrdinalIgnoreCase) _
And Integer.Parse(anitem.Field(Of String)("Days Late")) <= intDays _
And facilities.Contains(anitem.Field(Of String)("Facility")) _
Select anitem
Order By Integer.Parse(anitem.Field(Of String)("Days Late")) Ascending
Select Facility = anitem.Field(Of String)("Facility"), _
Zone = anitem.Field(Of String)("Zone"), _
Building = anitem.Field(Of String)("Building"), _
Floor = anitem.Field(Of String)("Floor"), _
DeviceName = anitem.Field(Of String)("Device_Name"), _
FullName = anitem.Field(Of String)("Full Device Name"), _
DaysLate = Integer.Parse(anitem.Field(Of String)("Days Late")), _
Status = anitem.Field(Of String)("Status"), _
UserName = anitem.Field(Of String)("Username"), _
Assignment = anitem.Field(Of String)("Assignment"), _
ResponsibleParty = anitem.Field(Of String)("ResponsiblePartyName")