2012-02-09 11 views
5

Mam kwerendę sql w mojej webapp asp.net i wynik jest przechowywany w datareader. Każdy wiersz w datareader zawiera 10 kolumn. Chcę wypełnić tabelę tymi danymi. Jednak nie mam pojęcia, jak przechodzić przez kolumny w datareader. Potrzebuję czegoś takiego:asp.net pętla danych sql datareader po kolumnach

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); 
    } 
} 

Mam nadzieję, że masz rację. Dzięki

Odpowiedz

14

użyć właściwości FieldCount z 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); 
    } 
} 
+0

dziękuję, dokładnie to, czego potrzebuję – polohy

1

Trzeba po prostu to zrobić poprzez SqlDataAdapter:

SqlConnection Conn = new SqlConnection(YourConnectionString); 
SqlCommand YourSqlCommand = new SqlCommand(); 
YourSqlCommand.Connection = Conn; 
YourSqlCommand.CommandText = "select * from yourtable"; 

DataTable dt = new DataTable(); 

SqlDataAdapter sda = new SqlDataAdapter(YourSqlCommand); 

sda.Fill(dt); 

W momencie, twój DataTable (dt) zawiera wszystkie dane z twojego zapytania.

+1

Wygląda jak jego tabela ASP nie DataTable – Magnus

+0

miło, spróbuj to też – polohy

+0

@ Tabela MB Magrus? Nie idę za tobą. To zdecydowanie "DataTable" z kompletnymi danymi z zapytania 'SqlCommand'. –

Powiązane problemy