Hola a todos... bueno les cuento mi problema... estoy haciendo una pagina de ingreso de notas para un colegio... mi problema es ...
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:
Protected 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
luego kiero recorrer la tabla para tomar el valor del textbox e insertarlo en la db
Código:
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
no me funciona... solo funciona el mostrar....
espero me puedan ayudar gracias