2012-02-09 15 views
5

Tengo una consulta SQL en mi asp.net webapp y el resultado se almacena en el lector de datos. Cada fila en el lector de datos contiene 10 columnas. Quiero llenar la tabla con estos datos. Sin embargo, no tengo ni idea, cómo recorrer las columnas en el lector de datos. Necesito algo como esto:asp.net sql datareader loop por columnas

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

Espero que entiendas el punto. Gracias

Respuesta

14

Utilice la propiedad FieldCount del 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

gracias, eso es exactamente lo que necesito – polohy

1

Sólo debe hacerlo a través de una 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); 

Al momento, su DataTable (dt) contiene todos los datos de su consulta.

+1

Parece que es una tabla ASP no una DataTable – Magnus

+0

bien, lo intentaré también – polohy

+0

@Magnus tabla ASP? No estoy siguiendo. Definitivamente es una 'DataTable' con datos completos de la consulta de' SqlCommand'. –