Tabla dinamica VB .NET
Que pasa si hago una consulta a una BD y quiero mostrar el resultado en una tabla HTML?
Este es un ejemplo en que partiendo de una tabla de 4 columnas
(vale, podria ser mas dinamica), se genera una tabla
tomando los nombres de columna del propio resultado.
Este es un ejemplo en que partiendo de una tabla de 4 columnas
(vale, podria ser mas dinamica), se genera una tabla
tomando los nombres de columna del propio resultado.
Private Sub consultaDetalle() 'Introducir aquí el código de usuario para inicializar la página Dim conexion As System.Data.OleDb.OleDbConnection Dim comando As System.Data.OleDb.OleDbCommand Dim datos As System.Data.OleDb.OleDbDataReader Dim tempRow As TableRow Dim itemTMP As ListItem Dim caso As String Dim conString As String Dim sentencia As String 'establecemos la sentencia sentencia = "select * from ESTUDIANTES" Response.Write("Sentencia SQL: " & sentencia) 'String de conexion para una bd access conString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("Colegio.mdb") 'creamos el objeto conexion conexion = New OleDbConnection(conString) 'todo lo hacemos en un bloque try-catch Try 'establecemos conexion conexion.Open() Response.Write("OK conexion establecida <br>") 'Creamos el objeto comando comando = New OleDbCommand(sentencia, conexion) Response.Write("OK comando creado <br>") 'ejecucion de una consulta datos = comando.ExecuteReader() Response.Write("OK comando ejecutado <br>") Dim tmpItem As ListItem Dim lblTemp As Label 'If datos.RecordsAffected > 0 Then Tabla.Visible = True lblTemp = New Label() lblTemp.Text = datos.GetName(0) Tabla.Rows(0).Cells(0).Controls().Add(lblTemp) lblTemp = New Label() lblTemp.Text = datos.GetName(1) Tabla.Rows(0).Cells(1).Controls().Add(lblTemp) lblTemp = New Label() lblTemp.Text = datos.GetName(2) Tabla.Rows(0).Cells(2).Controls().Add(lblTemp) lblTemp = New Label() lblTemp.Text = datos.GetName(3) Tabla.Rows(0).Cells(3).Controls().Add(lblTemp) 'End If Dim linea As TableCellCollection() Dim celda As TableCell Dim i As Integer i = 0 ' Recorremos el resultset y cargamos el combo Do While datos.Read() tempRow = New TableRow() For i = 0 To 3 lblTemp = New Label() lblTemp.Text = datos.GetValue(i) celda = New TableCell() celda.Controls.Add(lblTemp) tempRow.Controls.Add(celda) Next Tabla.Controls().Add(tempRow) Loop ' en caso de error.. capturamos y mostramos Catch ex As Exception Response.Write("Error al acceder a la BD<br>" & ex.Message) Finally 'en cualquier caso hacemos esto (mal, sin comprobar) ' conexion.Close() conexion = Nothing comando = Nothing End Try 'si la pagina ya se habia cargado antes aparecemos aqui 'Else 'Response.Write("OK, la pagina ya estaba cargada<br>") 'End If End Sub