Tola
Tola

Reputation: 2421

Loop through the rows of a particular DataTable

IDE : VS 2008, Platform : .NET 3.5,

Hi,

Here is my DataTable columns :

ID Note Detail

I want to write sth like this :

//below code block is not the right syntax


For each q in dtDataTable.Column("Detail")

    strDetail = Row of Column Detail

 Next

Can anyone give me a suggestion and show me a code sample please ? Thanks.

Upvotes: 39

Views: 356062

Answers (4)

Joel Coehoorn
Joel Coehoorn

Reputation: 415600

For Each row As DataRow In dtDataTable.Rows
    strDetail = row.Item("Detail")
Next row

There's also a shorthand:

For Each row As DataRow In dtDataTable.Rows
    strDetail = row("Detail")
Next row

Note that Microsoft's style guidelines for .Net now specifically recommend against using hungarian type prefixes for variables. Instead of "strDetail", for example, you should just use "Detail".

FWIW, I'd really like to see support for this (and also the async equivalent) built directly into ADO.Net.

Upvotes: 104

BR1COP
BR1COP

Reputation: 349

Here's the best way I found:

    For Each row As DataRow In your_table.Rows
        For Each cell As String In row.ItemArray
            'do what you want!
        Next
    Next

Upvotes: 3

eglasius
eglasius

Reputation: 36027

You want to loop on the .Rows, and access the column for the row like q("column")

Just:

        For Each q In dtDataTable.Rows
            strDetail = q("Detail")
        Next

Also make sure to check msdn doc for any class you are using + use intellisense

Upvotes: 1

jason
jason

Reputation: 241583

Dim row As DataRow
For Each row In dtDataTable.Rows
    Dim strDetail As String
    strDetail = row("Detail")
    Console.WriteLine("Processing Detail {0}", strDetail)
Next row

Upvotes: 4

Related Questions