Foros del Web » Programando para Internet » ASPX (.net) »

Ayuda recorrer tabla aspx

Estas en el tema de Ayuda recorrer tabla aspx en el foro de ASPX (.net) en Foros del Web. Hola a todos... bueno les cuento mi problema... estoy haciendo una pagina de ingreso de notas para un colegio... mi problema es ... ke no ...
  #1 (permalink)  
Antiguo 26/05/2010, 09:31
Avatar de khatta  
Fecha de Ingreso: abril-2010
Mensajes: 22
Antigüedad: 14 años, 8 meses
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
  #2 (permalink)  
Antiguo 26/05/2010, 17:09
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 24 años, 1 mes
Puntos: 19
Respuesta: Ayuda recorrer tabla aspx

Hola

Seguramente tu problema debe estar en
"For Each miDataRow As DataRow In TblAlumnos.Rows"

Asegurate metiendo un punto de interrupción o contando la cantidad de filas que tenga datos.

Para el comando cuando agregas parametros en ves de usar ".Add" usa "AddWhitValue" así no necesitas especificar el tipo de dato ni nada:

"AddWhitValues("@nota_alumno_valor", Nota)

En tu "if ..>0" proba antes directamente ejecutar
"TuComando.ExecuteNonQuery()" directamente
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!

Etiquetas: aspx, recorrer, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:43.