【发布时间】:2018-05-25 18:15:34
【问题描述】:
我在尝试迭代 Datatable 甚至使用 Linq 类时遇到了麻烦。
我有一张这样的桌子:
(String) (String) (String) (String) (Integer)
Criteria | description | Option | Title | status
------------------------------------------------------------
Criteria 1 Lorem Ipsum Option 1 Class # 0
Criteria 1 Lorem Ipsum Option 1 Class # 0
Criteria 2 Lorem Ipsum Option 1 Class # 0
Criteria 2 Lorem Ipsum Option 2 Class # 1
Criteria 2 Lorem Ipsum Option 3 Class # 0
Criteria 3 Lorem Ipsum Option 1 Class # 0
Criteria 3 Lorem Ipsum Option 2 Class # 1
Criteria 3 Lorem Ipsum Option 2 Class # 0
Criteria 3 Lorem Ipsum Option 3 Class # 0
这是我的代码隐藏
--VB.NET--
Dim dt As DataTable = StoredProcedure
For Each row As DataRow In dt.Rows
Dim sCriteriaOne As DataRow() = dt.Select("Criteria='Criteria 1'")
Item.Append("<p>" + CStr(sCritOne.Item("Option")) + "</p>")
Next
目前它不会编译并给我“项目”不是 DataRow() 的成员
我想要实现的是能够循环遍历 DataTable 并在满足条件的情况下附加 that 行 Item。我曾尝试使用 Linq,但我对此的理解有限,尽管我确实阅读了许多其他 MSDN 文档和关于类似问题的 SO 帖子。
【问题讨论】:
-
那是因为
sCriteriaOne是DataRow的数组,而Item不是该对象的成员...如果您不想要数组删除(),否则您将需要迭代数组......如果你不删除它们。也打开选项严格。 -
您似乎在遍历行,然后在每次迭代中执行选择 - 所以您做了两次相同或类似的事情。