4 de febrero de 2012

Login VB 1/2

Para empezar se debe crear una base de datos para conectarnos, la llamo empleado y luego creamos una nueva tabla:



La tabla tendrá los siguientes campos y el nombre tal como aparece en la imagen:


Ahora se debe crear un nuevo proyecto en VB, en mi caso lo llamo Login, al crearlo lo primero que se va hacer es click derecho sobre el proyecto recién creado y escogemos propiedades


escoger la pestaña settings y luego modificar los valores tal como aparece en la imagen:


para obtener el campo Value recordar que se debe presionar el botón de examinar, luego de lo cual se obtiene la siguiente ventana con los respectivos datos a utilizar:



el respectivo app.config quedara de la siguiente manera:


El cual se debe modificar en la parte de name, de manera que queda según la imagen y guardamos los cambios:



Ahora bien, para acceder al fichero de configuración (app.config) debes hacerlo con la clase ConfigurationManager en .NET FrameWork 2.0, la cual encuentras en System.Configuration.ConfigurationManager.
Resulta que en WebDeveloper viene una referencia por defecto a System.Configuration. Sin embargo, cuando haces una aplicación de tipo WinForm debes hacer esta referencia de manera explicita.  
Para añadir una referencia al proyecto, click derecho sobre este en el Solution Explorer y seleccionamos Add Reference



y añadir la referencia System.Configuration tal como se muestra:


luego se crea el formulario de login, en mi caso el diseño quedo de la siguiente manera:



listo, ahora agregar un modulo al proyecto


le dejare el nombre por defecto que aparece al momento de crearlo, ademas del formulario de login creare otro formulario para gestionar los usuarios, este nuevo formulario queda de la siguiente manera:



Modulo Kode
ahora si, en el modulo pegar el siguiente código:

Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration

Module Module1
    Dim sql As SqlConnection
    Dim leer As SqlDataReader
    Dim cmd As SqlCommand
    Dim form2 As New Entrada
    Dim da As SqlDataAdapter
    Dim dt As DataTable
    Dim cnn As String = ConfigurationManager.ConnectionStrings("con").ConnectionString
    Public Sub VerificarUsuario(ByVal username, ByVal password)
        Using sql = New SqlConnection(cnn)
            sql.Open()
            cmd = New SqlCommand
            cmd.CommandText = "select * from registro where username=@user and password=@password"
            cmd.Connection = sql
            cmd.Parameters.AddWithValue("@user", username)
            cmd.Parameters.AddWithValue("@password", password)
            leer = cmd.ExecuteReader
            If leer.Read Then
                leer.Close()
                cmd.Dispose()
                form2.Show()
                Form1.Close()
                Form1.Dispose()

            Else
                MessageBox.Show("Nombre de usuario o contraseña incorrectas", "Error")
                leer.Close()
                cmd.Dispose()
            End If
        End Using

    End Sub

    Public Function Datos() As DataTable
        Dim cadena As String = "select * from registro"
        dt = New DataTable
        Using sql = New SqlConnection(My.Settings.con)
            Using da = New SqlDataAdapter(cadena, sql)
                da.Fill(dt)
                Return dt
            End Using
        End Using
    End Function

    Public Sub InsertarRegistro(ByVal val1, ByVal val2)
        Using sql = New SqlConnection(cnn)
            Using cmd = New SqlCommand
                sql.Open()
                cmd.Connection = sql
                cmd.CommandText = "insert into registro values(@user,@pass)"
                cmd.Parameters.AddWithValue("@user", val1)
                cmd.Parameters.AddWithValue("@pass", val2)
                cmd.ExecuteNonQuery()
                MessageBox.Show("se han ingresado los datos correctamente")
            End Using
        End Using
    End Sub

    Public Sub ModificarDatos(ByVal val1, ByVal val2, ByVal val3)
        Using sql = New SqlConnection(cnn)
            Using cmd = New SqlCommand
                sql.Open()
                cmd.Connection = sql
                cmd.CommandText = "update registro set username=@user, password=@pass where id=@id"
                cmd.Parameters.AddWithValue("@user", val1)
                cmd.Parameters.AddWithValue("@pass", val2)
                cmd.Parameters.AddWithValue("@id", val3)
                cmd.ExecuteNonQuery()
                MessageBox.Show("Se han modificado los datos correctamente")
            End Using
        End Using
    End Sub

    Public Sub EliminarDatos(ByVal val1)
        Using sql = New SqlConnection(cnn)
            Using cmd = New SqlCommand
                sql.Open()
                cmd.Connection = sql
                cmd.CommandText = "delete from registro where id=@id"
                cmd.Parameters.AddWithValue("@id", val1)
                cmd.ExecuteNonQuery()
                MessageBox.Show("datos eliminados correctamente")
            End Using
        End Using
    End Sub

End Module

Login Kode
eso es para el modulo, ahora dentro del formulario de login copiar el siguiente codigo:

Public Class Form1
    Private Sub Ingresar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ingresar.Click
        VerificarUsuario(TextBox1.Text, TextBox2.Text)
    End Sub
End Class


Usuarios Kode
y por ultimo el codigo para gestionar los usuarios queda de la siguiente manera:

Public Class Entrada
    Dim bs As BindingSource

    Public Sub CargarDatos()
        bs = New BindingSource
        bs.DataSource = Datos()
        BindingNavigator1.BindingSource = bs
        DataGridView1.DataSource = bs
        TextBox1.DataBindings.Clear()
        TextBox2.DataBindings.Clear()
        TextBox3.DataBindings.Clear()
        TextBox1.DataBindings.Add("text", bs, "username")
        TextBox2.DataBindings.Add("text", bs, "password")
        TextBox3.DataBindings.Add("text", bs, "id")
    End Sub

    Private Sub Consultar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Consultar.Click
        CargarDatos()
    End Sub

    Private Sub BIngresar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BIngresar.Click
        InsertarRegistro(TextBox1.Text, TextBox2.Text)
        limpiar()
    End Sub

    Private Sub BModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BModificar.Click
        ModificarDatos(TextBox1.Text, TextBox2.Text, TextBox3.Text)
        limpiar()
    End Sub

    Private Sub limpiar()
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        DataGridView1.DataSource = DBNull.Value
    End Sub

    Private Sub BEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BEliminar.Click
        EliminarDatos(TextBox3.Text)
        limpiar()
    End Sub

End Class




Compilamos y ejecutamos y ya esta.


y el de gestionar