Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 循环遍历单个DataTable VB.Net的行_Asp.net_.net_Vb.net - Fatal编程技术网

Asp.net 循环遍历单个DataTable VB.Net的行

Asp.net 循环遍历单个DataTable VB.Net的行,asp.net,.net,vb.net,Asp.net,.net,Vb.net,我在尝试迭代Datatable甚至使用Linq类时遇到问题 我有一张这样的桌子: (String) (String) (String) (String) (Integer) Criteria | description | Option | Title | status ------------------------------------------------------------ Criteria 1 Lorem Ips

我在尝试迭代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
-VB.NET--
作为数据表的Dim dt=存储过程
对于dt.行中作为DataRow的每一行
Dim sCriteriaOne As DataRow()=dt.Select(“标准=”标准1'))
项目.附加(“”+CStr(sCritOne.Item(“选项”))+“

”) 下一个
当前它不会编译,并告诉我“Item”不是DataRow()的成员


我试图实现的是能够在DataTable中循环并在满足条件的情况下附加rows项。我曾经尝试过使用Linq,但我对它的理解是有限的,尽管我确实阅读了许多其他MSDN文档,以及关于类似问题的帖子

你的循环开始得很好,但在细节上却失败了。我猜你想做什么,但也许这足以让你开始。字符串前面的
$
是一个插值字符串,它允许您将变量放在字符串中,并用
{}
包围。如果您使用的是旧版本的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
如果行(“标准”).ToString=“标准1”,则
行(“标准”)=行(“标准”)。ToString&$“{CStr(行(“选项”)}”
Debug.Print(行(“标准”).ToString)
如果结束

这是因为
sCriteriaOne
数据行的数组
,而
不是该对象的成员。。。如果不需要数组,请删除
()
,否则需要迭代数组。。。如果你不移除它们。同样打开option strict。您似乎在对行进行迭代,然后在每次迭代中执行select-因此您要做两次相同或类似的事情。感谢您的编辑,但我认为DataTable与html无关。网格是,但数据表只存在于内存中。html.Append会做什么?没问题。我能理解这种混乱。我使用html作为新的StringBuilder。@cpt crunchy得到了它!是的,在循环中使用StringBuilder是一个非常好的主意。
StringBuilder
将非常有用(谈论性能),只有当有太多的连接在进行时才有用,例如,可能有10个或更多…根据格式,正式的代码会做得最好