我在尝试迭代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
这是我的CodeBehind
--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
目前它不会编译,并且给了我&#39;项目&#39;不是DataRow()的成员
我尝试实现的目标是能够遍历DataTable并在符合条件的情况下附加 行Item。我曾尝试使用Linq但我对此的理解是有限的,尽管我确实阅读了许多其他MSDN文档和SO帖子上类似的问题。
答案 0 :(得分:1)
你的循环开始很好但在细节上分崩离析。我猜想你想要做什么,但也许这足以让你开始。字符串前面的$
是一个插值字符串,允许您将变量放在由{ }
包围的字符串中。如果您使用旧版本的vb,则必须使用旧方法String.Format
。要检查数据的更新方式,请在结束程序后检查即时窗口。这就是Debug.Print
的用途。
If row("Criteria").ToString = "Criteria 1" Then
row("Criteria") = row("Criteria").ToString & $" <p>{CStr(row("Option"))}"
Debug.Print(row("Criteria").ToString)
End If