ke no se como recorrer la tabla asp dond muestro todos los alumnos pertenecientes a un curso.. bueno ahi va el codigo
primero busco los alumnos ke esten en la clase seleccionada y los muestro en una tabla asp
Código:
luego kiero recorrer la tabla para tomar el valor del textbox e insertarlo en la dbProtected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnBuscar.Click Dim SqlCn As SqlConnection Dim SqlCmd As SqlCommand = New SqlCommand 'A diferencia de las consultas que actualizan datos, en esta vámos a retornar una tabla 'Para esto necesitamos un DataReader... Dim SqlDr As SqlDataReader 'Objetos de la tabla Dim TblCell As TableCell Dim TblRow As TableRow Dim TxtNotas As TextBox = New TextBox TxtNotas.Width = "50" TxtNotas.Text = "0.00" SqlCn = FnConectar() With SqlCmd Dim codigo As String = ddCod.SelectedValue .Connection = SqlCn .CommandType = Data.CommandType.StoredProcedure .CommandText = "SpBuscaAlumnosAsignatura" With .Parameters .Add("@asignatura_id", Data.SqlDbType.VarChar, 45) .Item("@asignatura_id").Value = codigo End With 'El data reader se llenará con los datos obtenidos de la consulta que hiciste 'en el Procedure... 'Esta llamada te retorna el Reader con los datos de la consulta SqlDr = .ExecuteReader End With If IsNothing(SqlDr) Then Throw New Exception("No se creo el Reader") End If With SqlDr If .HasRows Then 'ciclo para vaciar la tabla While .Read 'crear encavezado de la tabla TblRow = New TableRow 'crear celda TblCell = New TableCell TblCell.Text = "Rut" 'añadimos celda a la tabla TblRow.Controls.Add(TblCell) TblCell = New TableCell() TblCell.Text = "Nombre Alumno" TblRow.Controls.Add(TblCell) TblCell = New TableCell() TblCell.Text = "Nota" TblRow.Controls.Add(TblCell) TblAlumnos.Controls.Add(TblRow) 'Aqui vamos a crear primero nuestro renglon... TblRow = New TableRow 'y se crea un nuevo renglon :) 'Luego, por cada registro que queramos incluir en el renglon, crearemos el Cell TblCell = New TableCell() TblCell.Text = .Item("rut") 'Una ves que la celda tiene los datos a desplegar.. lo incluyes en el renglon creado TblRow.Controls.Add(TblCell) 'Cada row almacena n cantidad de Celdas 'que no es mas que los cuadritos de la tabla.. 'Otro elemento del mismo renglon debes crearlo de nuevo... TblCell = New TableCell() TblCell.Text = .Item("NombreCompleto") TblRow.Controls.Add(TblCell) 'Aqui se mete otro cuadrito TblCell = New TableCell() TblCell.Controls.Add(TxtNotas) TblRow.Controls.Add(TblCell) 'Al final, cuando el Row ya tenga todos sus cuadritos... lmetemos el Row a la tabla. TblAlumnos.Controls.Add(TblRow) End While Me.Tabla.Visible = True Else lblMensaje.Text = "No existen alumnos para el curso seleccionado" lblMensaje.Style.Value = "color:red" End If End With End Sub
Código:
no me funciona... solo funciona el mostrar.... Dim rut As String Dim nota As Double Dim SqlCn As SqlConnection Dim SqlCmd As SqlCommand = New SqlCommand SqlCn = FnConectar() With SqlCmd .Connection = SqlCn .CommandType = CommandType.StoredProcedure .CommandText = "SpInsertaNota" For Each miDataRow As DataRow In TblAlumnos.Rows rut = miDataRow("rut") nota = miDataRow("txtNotas") With .Parameters .Add("@nota_alumno_valor", Data.SqlDbType.Float) .Item("@nota_alumno_valor").Value = nota .Add("@alumno_alumno_rut", Data.SqlDbType.VarChar, 10) .Item("@alumno_alumno_rut").Value = rut .Add("@asignatura_asignatura_id", Data.SqlDbType.VarChar, 45) .Item("@asignatura_asignatur_id").Value = ddCod.SelectedValue End With If .ExecuteNonQuery() > 0 Then lblMensaje.Text = "Datos Ingresados Correctamente" lblMensaje.Style.Value = "color:blue" Else lblMensaje.Text = "Error: Los datos no se han podido ingresar" lblMensaje.Style.Value = "color:red" End If Next End With End Sub
espero me puedan ayudar gracias