domingo, 20 de marzo de 2016

VB.NET AND ACCESS: 1. Conecxion y Loggin

Introducción
Aunque personalmente prefiero usar MySQL como motor de base de datos, por cosas del trabajo se me ha dado la oportunidad de trabajar con Access últimamente y aunque no me he tomado con mayores problemas hasta el momento, las cosas si son un poco diferentes, por lo cual voy a publicar una serie de ejemplos para fomentar el uso de estas tecnología en pequeños desarrollos.

En cuanto al desarrollo de software

Bueno en esta ocasión empezare a publicar un programa completo desarrollado en VB.NET y que se conecte a una base de datos (Access como ya sabemos).

Empezaremos por realizar el Loggin o formulario de inicio de sesión, así que una vez tengamos creado nuestro proyecto agregaremos un nuevo formulario pero del tipo “Formulario de inicio de sesion”

Si no sabes cómo se realiza esto, en el panel superior de VB.NET; esta la opción “Proyecto” y luego damos en “Agregar Windows Form…” y en la ventana que aparecerá seleccionar “Formulario de Inicio de Sesión”

Una vez creado esto, el siguiente paso es crear un modulo; Presionamos en “Proyecto”>”Agregar modulo…”


Ahora en el módulo que acabamos de crear vamos a agregar el siguiente código y debería quedarnos así:

Module Module1
    Public conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Camel\Desktop\HelloBD.mdb; Jet OLEDB:Database Password=Rosa1253;")

    Public Function conectarBD()
        Try
            conn.Open()
            Return True
        Catch ex As Exception
            'Return False
            MsgBox("Error en la conexion a DB" + vbCrLf + "Contacte al programador" + vbCrLf + "Error: " + ex.ToString)
        End Try
    End Function

End Module


En este módulo tenemos para iniciar la variable "conn" que será la que contiene la dirección y las credenciales de nuestra base de datos para posteriormente conectarnos a ella. No olvides cambiar C:\Users\Camel\Desktop\HelloBD.mdb por la ubicación de tu base de datos y Rosa1253 por la contraseña de la misma.

Como segundo elemento en el módulo tenemos una función pública que se llama conectarBD que como su nombre lo indica es la encargada de conectar nuestro programa a la base de datos.

Como segundo paso nos iremos al LoginForm que creamos antes y al final agregaremos el siguiente
método

Private Function Loggiar(ByVal user As String, ByVal pswd As String)
        Dim cmd5 As New OleDb.OleDbCommand
        Dim dr5 As OleDb.OleDbDataReader

        cmd5.Connection = conn
        cmd5.CommandType = CommandType.Text

        cmd5.CommandText = "Select * FROM Funcionarios Where Usuario='" & user & "' AND Pswd='" & pswd & "'"

        Try
            dr5 = cmd5.ExecuteReader()


            If dr5.HasRows Then

               
                Dim x = 0
                While dr5.Read

                   
                    'contraseña = (dr5(2).ToString)
                    'Iniciar(dr5(4).ToString, dr5(3).ToString, dr5(5).ToString)

                    x = x + 1
                    Return True
                End While


            Else
                Return False
            End If

            dr5.Close()
        Catch ex As Exception
            MsgBox(ex.ToString)
            End
        End Try

    End Function

Además de esto en el método FormLoad del formulario agregaremos la sentencia que llama a la
conexión a la base de datos y nos quedara algo como esto:

Private Sub LoginForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        conectarBD()

    End Sub

Ahora en el botón Ok agregaremos la sentencia que será la encargada de llamar y enviar parámetros a nuestro método de verificación que es Loggiar() y lo haremos de esta manera

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        If Loggiar(Me.UsernameTextBox.Text, Me.PasswordTextBox.Text) = True Then
            'Ingreso correctamente
            Form1.Show()
        Else
            'Datos incorrectos
            MsgBox("Error")
        End If

    End Sub

Y ahora como ultimo paso debemos configurar nuestro programa para que el formulario de inicio sea FormLogin y no Form1 como viene por defecto, para hacer esto lo que haremos es ir al panel superior, pinchar en “Proyeto” Seleccionar la última opción que dice “Propiedades de [Nombre de tu proyecto] y en la pestaña que dice “Formulario de inicio” cambiar por “LoginFomr1”

En cuanto a la base de datos

El criterio de la base de datos es suya, pueden manejar la estructura que más les convenga. En mi caso tengo una tabla Usuarios y contiene los campos Usuario (Nickname) y Passsword (La contraseña de dicho usuario)

cmd5.CommandText = "Select * FROM Funcionarios Where Usuario='" & user & "' AND Pswd='" & pswd & "'"

En caso de que tu estructura no sea igual solo modifica los campos y el nombre de la tabla y con eso será suficiente.




Error al montar disco duro en Linux

¿Te ha ocurrido frecuentemente este error al intentar montar un disco duro en tu sistema Linux? A mi me sucede mucho y note qu...