Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2010, 09:31
Avatar de khatta
khatta
 
Fecha de Ingreso: abril-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Ayuda recorrer tabla aspx

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