asp.net sql datareader loop by columns

polohy picture polohy · Feb 9, 2012 · Viewed 17.4k times · Source

I have sql query in my asp.net webapp and the result is stored in datareader. Every row in datareader contains 10 columns. I want to fill table with these data. However, I have no idea, how to loop through columns in datareader. I need something like this:

while (vysledky.Read())
{
    TableRow row = new TableRow();
    tab.Controls.Add(row);
    foreach (column in ((datareader(row)))  //it is not real code
    {
      TableCell cell = new TableCell();
      cell.Text = datareader(row).content;
      row.Controls.Add(cell);
    }
}

I hope you got the point. Thanks

Answer

Rob picture Rob · Feb 9, 2012

Use the FieldCount property of the SqlDataReader:

while (vysledky.Read())
{
    // Iterate over each of the fields (columns) in the datareader's current record
    for (int i = 0; i < vysledky.FieldCount; i++)
    {
        var value = vysledky[i];

        TableCell cell = new TableCell(); 
        cell.Text = Convert.ToString(value); 
        row.Controls.Add(cell); 
    }
}