在这个查询对数据表我试图做一些条件过滤。 只有当索引存在时,才能对时间带(索引N)进行检查。 (基码只有三个项字段中,我它们转换为一个简单的列表)Vb.net有条件的linq查询
Dim res As DataTable =
(
From dr As DataRow In dtTimedRow.AsEnumerable()
Select dr
Where
(TimeBands.Count > 0 AndAlso
dr.Field(Of Short)(fldStarttime) >= TimeBands(0).StartTime
And dr.Field(Of Short)(fldStarttime) <= TimeBands(0).EndTime
) Or
(TimeBands.Count > 1 AndAlso
dr.Field(Of Short)(fldStarttime) >= TimeBands(1).StartTime
And dr.Field(Of Short)(fldStarttime) <= TimeBands(1).EndTime
) Or
(TimeBands.Count > 2 AndAlso
dr.Field(Of Short)(fldStarttime) >= TimeBands(2).StartTime
And dr.Field(Of Short)(fldStarttime) <= TimeBands(2).EndTime)
).CopyToDataTable()
上面的代码触发异常如果计数= 1它执行旁边imeBands.Count代码> 1它不应该。这个代码的正确解决方案是什么?
同时,我添加了一个简单的过滤功能。
抛出哪个异常? –