2013-10-18 39 views
-1

表名稱 - 桌面如何循環列的行值?

列 - 主機名

我試過這種方式,但不工作

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

什麼是不工作?你有例外嗎? –

+0

這似乎不是c# – Jonesopolis

+0

爲什麼用C#標記它? – Habib

回答

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) 

除此之外,由於您使用的是強類型DateTableTableAdapter,您應該也可以直接訪問自動生成的柱面:

Dim hostName As String = table.Rows(0).HostName 
+0

你可以更進一步,用For Each循環做一個'.Select()'。 –

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 
+0

@TimSchmelter,謝謝你指出,我想'ToString'會假設會有一個'myColumn1'列 – Habib