VB.NET For Each通过DataLayer

时间:2012-03-04 12:42:30

标签: vb.net

我正在帮助某人修复一个VB应用程序,但是只需要一点点语法。

我有以下内容:

Dim _dt = Datalayer.ConvertSqlDataSourceToDataTable(SqlDataSourceCart)
If _dt.Rows.Count > 0 Then
    'For Each here...
End If

我需要做的是使用For或For Each循环遍历每一行并获取ProductID字段。我认为它应该是这样的:

Dim someString As String   
For Each _row As DataRow In _dt.DataSet.Tables(0).Rows
    someString += _row(ProductID) & ", "
Next

2 个答案:

答案 0 :(得分:1)

假设_dt已经是DataTable类型:

Dim someStringBuilder As New System.Text.StringBuilder()
For Each _row As DataRow In _dt.Rows
    someStringBuilder.Append(_row.Field(Of String)("ProductID")).Append(",")
Next
If someStringBuilder.Length<>0 Then someStringBuilder.Length -= 1
Dim someString = someStringBuilder.ToString()

或者,如果您可以使用LINQ-To-DataSet

Dim IDs = _dt.AsEnumerable.Select(Function(r) r.Field(Of String)("ProductID"))
someString  = String.Join(",", IDs)

答案 1 :(得分:0)

someString += _row["ProductID"] & ", "