表名 - 桌面
列 - HostName
我试过这种方式但没有工作
Dim adapter As New MyAdapter()
Dim table As New MyTable()
adapter.Fill(table, param1, param2)
If table.Rows.Count > 0 Then
Dim s As String = table.Rows(1)("mycolumn1").ToString()
End If
答案 0 :(得分:3)
.NET中的所有集合都以索引0而不是1开头。因此即使只有一行也可以使用:
If table.Rows.Count > 0 Then
Dim s As String = table.Rows(0)("HostName").ToString()
End If
请注意,最好使用键入的Field
方法:
Dim hostName = table.Rows(0).Field(Of String)("HostName")
由于您提到了loop
,因此您可以使用For Each
:
For Each row As DataRow In table.Rows
Dim hostName = row.Field(Of String)("HostName")
Next
或使用LINQ:
Dim allHostNames = From row in table
Select row.Field(Of String)("HostName")
Dim hostNamesCommaSeparated = String.Join(",", allHostNames)
除此之外,由于您使用的是强类型DateTable
和TableAdapter
,因此您还应该能够直接访问自动生成的columnes:
Dim hostName As String = table.Rows(0).HostName
答案 1 :(得分:1)
如何使用SQL Server和VB.net循环列的行值?
您正在寻找For Each
循环
For Each row As DataRow In table.Rows
Dim s As String = row("mycolumn1").ToString()
'' rest of your code
Next row