循环遍历单个DataTable VB.Net

时间:2018-05-25 18:15:34

标签: asp.net .net vb.net

我在尝试迭代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帖子上类似的问题。

1 个答案:

答案 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