ASP.NET
 

Código de Visual Basic de la página ModificarUsuario.aspx del Tutorial de acceso a datos desde páginas Web usando Visual Web Developer 2005

 

Publicado el 04/Feb/2007
Actualizado el 04/Feb/2007
Autor: Guillermo 'guille' Som

 


 

 

Este es el código de Visual Basic 2005 de la página que habrás creado usando las indicaciones de la tercera parte del Tutorial de acceso a datos en sitio Web creado con Visual Web Developer 2005 Express y SQL Server 2005 Express.

 

 El código de Visual Basic 2005

Imports System.Data
Imports System.Data.SqlClient

Partial Class ModificarUsuario
    Inherits System.Web.UI.Page

    Protected Sub btnActualizar_Click(ByVal sender As Object, _
                ByVal e As System.EventArgs) _
                Handles btnActualizar.Click
        Me.lblAviso.Text = ""
        '
        ' Comprobamos si el nombre ya existe
        Using cnn As New SqlConnection(Me.SqlDataSource1.ConnectionString)
            ' El valor que necesitamos es el ID
            Dim cmd As New SqlCommand( _
                    "SELECT ID " & _
                    "FROM Usuarios " & _
                    "WHERE Correo = @Correo", cnn)
            ' Abrimos la conexión
            cnn.Open()
            ' Añadimos el valor del parámetro de la consulta
            cmd.Parameters.AddWithValue("@Correo", txtCorreo.Text)

            ' Si devuelve cero, es que no existe
            Dim i As Integer
            i = CInt(cmd.ExecuteScalar())
            If i = 0 Then
                ' Avisamos y salimos
                Me.lblAviso.Text = "El usuario NO existe"
                Exit Sub
            End If

            ' Si llegamos aquí, es que el usuario existe
            ' Deberíamos hacer las comprobaciones de que haya datos que guardar,
            ' pero... eso te lo dejo a ti...
            '
            ' Seguimos usando la misma conexión, pero cambiamos el comando

            ' Usamos el comando Update del DataSource
            cmd = New SqlCommand(Me.SqlDataSource1.UpdateCommand, cnn)

            ' Añadimos el valor del parámetro de la consulta
            cmd.Parameters.AddWithValue("@Correo", txtCorreo.Text)
            ' La clave la guardaremos como un valor SHA1
            ' pero como ya estará como SHA1, simplemente la asignamos
            cmd.Parameters.AddWithValue("@Clave", txtClave.Text)
            ' Esto nos puede dar problemas dependiendo del forma
            ' del servidor en el que está la base de datos
            cmd.Parameters.AddWithValue("@Fecha", txtFecha.Text)
            cmd.Parameters.AddWithValue("@Nombre", txtNombre.Text)
            cmd.Parameters.AddWithValue("@Comentarios", txtComentarios.Text)

            ' El valor de la variable i es el ID a actualizar
            cmd.Parameters.AddWithValue("@ID", i)

            ' Ejecutamos el comando de actualización
            ' podemos usar el método Update del DataSource
            ' (pero no actualiza nada)
            'Me.SqlDataSource1.Update()
            ' Mejor con una llamada a ExecuteNonQuery
            cmd.ExecuteNonQuery()


            ' Al salir del bloque Using se cierra la conexión
        End Using
        Me.lblAviso.Text = "Se han actualizado los datos correctamente"
    End Sub

    Protected Sub btnMostrar_Click(ByVal sender As Object, _
                ByVal e As System.EventArgs) _
                Handles btnMostrar.Click
        Me.lblAviso.Text = ""
        '
        ' Comprobamos si el nombre ya existe
        Using cnn As New SqlConnection(Me.SqlDataSource1.ConnectionString)

            ' La cadena de slección será la que tenga el DataSource,
            ' pero buscando el correo que hemos escrito
            'Dim sel As String
            'sel = Me.SqlDataSource1.SelectCommand & _
            '            "WHERE Correo = @Correo"
            'Dim cmd As New SqlCommand(sel, cnn)

            ' Usando un procedimiento almacenado
            Dim cmd As New SqlCommand()
            cmd.CommandText = "MostrarUsuario"
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = cnn

            ' Abrimos la conexión
            cnn.Open()
            ' Añadimos el valor del parámetro de la consulta
            cmd.Parameters.AddWithValue("@Correo", txtCorreo.Text)

            ' El resultado lo guardaremos en una tabla
            Dim tabla As New DataTable
            ' Usaremos un DataAdapter para leer los datos
            Dim da As New SqlDataAdapter(cmd)
            ' Llenamos la tabla con los datos leídos
            da.Fill(tabla)

            ' Si la tabla no tiene filas, es que no existe ese usuario
            If tabla.Rows.Count = 0 Then
                ' Avisamos y salimos
                Me.lblAviso.Text = "El usuario NO existe"
                Exit Sub
            End If

            ' Mostramos los datos
            ' que estarán en la primera fila de la tabla,
            ' ya que solo debería haber un solo usuario con ese correo
            Me.txtClave.Text = tabla.Rows(0)("Clave").ToString
            Me.txtFecha.Text = tabla.Rows(0)("Fecha").ToString
            Me.txtNombre.Text = tabla.Rows(0)("Nombre").ToString
            Me.txtComentarios.Text = tabla.Rows(0)("Comentarios").ToString

            Me.lblAviso.Text = "El usuario existe y se han leído los datos."

            ' Al salir del bloque Using se cierra la conexión
        End Using

    End Sub

    Protected Sub btnClaveSha1_Click(ByVal sender As Object, _
                ByVal e As System.EventArgs) _
                Handles btnClaveSha1.Click
        ' Generar la clave SHA1 a partir de lo que haya en txtClave
        ' y asignar nuevamente a ese mismo textBox el resultado
        Dim clave As String
        clave = FormsAuthentication.HashPasswordForStoringInConfigFile( _
                    txtClave.Text, "SHA1")
        txtClave.Text = clave
    End Sub
End Class

 

Volver a la página explicativa

 



Ir al índice principal de el Guille