表名称 - 桌面
列 - 主机名
我试过这种方式但没有工作
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
.NET 中的所有集合都以索引 0 而不是 1 开头。所以即使只有一行也可以:
If table.Rows.Count > 0 Then
Dim s As String = table.Rows(0)("HostName").ToString()
End If
请注意,最好使用 typedField
方法:
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
and TableAdapter
,您还应该能够直接访问自动生成的列:
Dim hostName As String = table.Rows(0).HostName
如何使用 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