Inicio / Programación / Identificación de usuario VB.Net y MySQL

Sobre Bosco López

/dev/null

Te puede interesar también

Script

Script: Realizar copia de seguridad

En esta ocasión, quiero compartir un pequeño Script que realicé para hacer una copia de …

15 Comentarios

  1. De casualidad, tienes este mismo codigo pero para vb + sql?, he tratado de cambiarlo yo pero me marca error

    de antemano, gracias =)

    Private Function ComprobarUsuario(ByVal nombre As String, ByVal clave As Boolean)

    Dim Cn As SqlConnection = New SqlConnection(StrCn)
    Try

    Cn.Open()
    Dim sel As New System.Text.StringBuilder
    sel.Append(“SELECT COUNT (*) FROM TablaUsuario”)
    sel.Append(“WHERE NombreUsuario = @NombreUsuario and Contraseña = @Contraseña”)
    Dim cmd As New SqlCommand(sel.ToString(), Cn)
    cmd.Parameters.Add(“@NombreUsuario”, SqlDbType.Text, 10)
    cmd.Parameters.Add(“@Contraseña”, SqlDbType.Text, 10)

    cmd.Parameters(“@NombreUsuario”).Value = nombre
    cmd.Parameters(“@Contraseña”).Value = clave

    Dim t As Integer = CInt(cmd.ExecuteScalar())
    Cn.Close()
    If t = 0 Then
    Return False
    End If
    Catch ex As Exception
    MessageBox.Show(“Error al conectar la base de datos:” & vbCrLf & ex.Message, “Comprobar usuario”, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
    Return False
    Finally
    If Not Cn Is Nothing Then
    Cn.Dispose()
    End If
    End Try
    Return True

    End Function

  2. Dime que error te da, sino te publico el mismo código entero pero para VB + SQL

  3. t agraceceria mucho k m orientaras por favor tengo el sig codigo es similar al k aparece anteriormente yo l canbie una o dos lines tu m diras si estoy en lo correcto o no la primera line k es a lo k c es una importacion al espacios de nombres m marca en verde m dice k no contiene ningun miembro publico o no c encuentran y eso m genera muchos errores y eta li8nea m da un problema tambien porke yo cambie las conexion !!
    m podias dar una orienacion? gracias

    Imports System.Windows.Forms
    Imports System.Drawing
    Imports System.Data.SqlClient
    Imports System.Security.Cryptography
    Imports System.Text
    Imports System.Data

    Partial Class autentificacion
    Inherits System.Web.UI.Page
    Public Cn As New System.Data.OleDb.OleDbConnection()

    Dim veces, NumeroIntentos

    Protected Sub BtnAceptar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAceptar.Click

    If comprobarUsuario(Me.TxtUsuario.Text, Me.TxtPassword.Text) Then
    Me.DialogResult = DialogResult.OK
    Else
    ‘ Permitir varios intentos
    veces = veces + 1
    If veces < NumeroIntentos Then
    Label.Text = “Quedan ” & (NumeroIntentos – veces) & ” intentos”
    Exit Sub
    End If
    Me.DialogResult = DialogResult.No
    End If
    Hide()

    End Sub

    ‘Función para comprobar si el acceso es correcto
    Private Function comprobarUsuario( _
    ByVal nombre As String, _
    ByVal clave As String) As Boolean

    ‘ Conectar a la base de datos


    Try
    ‘ Conectar a la base de datos de SQL Server
    ‘ (la cadena debe estar inicializada previamente)
    Cn.ConnectionString = “Data Source=SAGARPA07;Initial Catalog=USUARIOS;Integrated Security=True”
    Cn.Open()

    ‘ Definir la cadena que vamos a usar para comprobar
    ‘ si el usuario y el password son correctos.
    ‘ Utilizo parámetros para evitar inyección de código.
    Dim sel As New System.Text.StringBuilder

    ‘ Usando COUNT(*) nos devuelve el total que coincide
    ‘ con lo indicado en el WHERE,
    ‘ por tanto, si la clave y el usuario son correctos,
    ‘ devolverá 1, sino, devolverá 0
    sel.Append(“SELECT COUNT(*) FROM Usuarios “)
    sel.Append(“WHERE Nombre = @Nombre AND Clave = @Clave”)
    ‘ Definir el comando que vamos a ejecutar
    Dim cmd As New SqlCommand(sel.ToString, )
    ‘ Creamos los parámetros
    cmd.Parameters.Add(“@Nombre”, SqlDbType.NVarChar, 50)
    cmd.Parameters.Add(“@Password”, SqlDbType.NVarChar, 40)

    ‘ Asignamos los valores recibidos como parámetro
    cmd.Parameters(“@Nombre”).Value = nombre
    cmd.Parameters(“@Password”).Value = clave

    ‘ Ejecutamos la consulta
    ‘ ExecuteScalar devuelve la primera columna de la primera fila
    ‘ por tanto, devolverá el número de coincidencias halladas,
    ‘ que si es 1, quiere decir que el usuario y el password son correctos.
    Dim t As Integer = CInt(cmd.ExecuteScalar())
    ‘ Cerramos la conexión
    Cn.Close()

    ‘ Si el valor devuelto es cero
    ‘ es que no es correcto.
    If t = 0 Then
    Return False
    End If

    Catch ex As Exception
    MessageBox.Show(“ERROR al conectar a la base de datos: ” & vbCrLf & _
    ex.Message, “Comprobar usuario”, MessageBoxButtons.OK, _
    MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
    Return False
    Finally
    If Not Cn Is Nothing Then
    Cn.Dispose()
    End If
    End Try

    ‘ Si llega aquí es que todo ha ido bien
    Return True
    End Function

    End Class

  4. esta es la linea k m marca el error

    Dim cmd As New SqlCommand(sel.ToString, cnn)

  5. Buen dia quien me puede ayudar para hacer la validacion con el codigo que me aparece no he podido yo tengo una tabla que se llama usuarios y los campos son user y password pero no me quiere validar muchas gracias

  6. hola! yo estaba tratando de hacer lo mismo que la primera persona que comento, utilizarlo en vb.net con sql pero el problema es que al parecer no me hace la conexion con la base de datos.. para cuando le doy play me sale siempre el error como si el resultado fuese 0 … aqui les dejo el codigo a ver si me pueden ilustrar con la solucion a mi problema de conexion..

    Imports System.Data.SqlClient
    Imports System.Data
    Imports System.Configuration
    Imports System.Text
    Imports Microsoft.SqlServer
    Imports System.Web.Security

    Partial Public Class WebForm01
    Inherits System.Web.UI.Page

    Private Function comprobarUsuario(ByVal UsuID As String, ByVal UsuClave As String) As Boolean

    Dim cnn As New SqlConnection

    Try
    cnn = New SqlConnection(“Data source = MISERVER; integrated security=SSPI; initial catalog= pubs”)
    cnn.Open()
    Dim sel As New System.Text.StringBuilder
    ‘ devolverá 1, sino, devolverá 0
    sel.Append(“SELECT COUNT(*) FROM Usuario “)
    sel.Append(“WHERE UsuID = @UsuID AND UsuClave = @UsuClave”)
    ‘ Definir el comando que vamos a ejecutar
    Dim cmd As New SqlCommand(sel.ToString, cnn)
    ‘ Creamos los parámetros
    cmd.Parameters.Add(“@UsuID”, SqlDbType.NVarChar, 15).Value = UsuID
    cmd.Parameters.Add(“@UsuClave”, SqlDbType.NVarChar, 15).Value = UsuClave
    ‘ ExecuteScalar devuelve la primera columna de la primera fila
    ‘ por tanto, devolverá el número de coincidencias halladas,
    ‘ que si es 1, quiere decir que el usuario y el password son correctos.
    Dim t As Integer = cmd.ExecuteScalar()
    ‘ Cerramos la conexión
    cnn.Close()

    ‘ Si el valor devuelto es cero
    ‘ es que no es correcto.
    If t = 0 Then
    Return False

    End If
    Catch ex As Exception
    MsgBox(“ERROR al conectar a la base de datos: ” & vbLf & _
    “Comprobar usuario”, _
    MsgBoxStyle.OkOnly, MsgBoxStyle.Exclamation Or MsgBoxStyle.DefaultButton1)
    Return False
    Finally
    If cnn IsNot Nothing Then
    cnn.Dispose()
    End If
    End Try

    ‘ Si llega aquí es que todo ha ido bien
    Return True
    End Function

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub TextBox3_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TBUsuClave.TextChanged

    End Sub

    Dim veces As Integer
    Dim NumeroIntentos As Integer = 4
    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click

    If comprobarUsuario(Me.TBUsuID.Text, Me.TBUsuClave.Text) Then
    MsgBox(“Usted tiene una informacion correcta”, MsgBoxStyle.OkCancel)
    Else
    ‘permitir 4 intentos
    veces = veces + 1
    If veces > NumeroIntentos Then
    MsgBox(“Intente mas tarde, o contactese con uno de los administradores”, MsgBoxStyle.OkOnly)
    End If
    ‘ Me.DialogResult = DialogResult.No
    End If
    End Sub

    End Class

  7. Hola,
    quetal…. a todos un buen y gran saludo….. porfa necesito que me ayuden necesito realizar un programa en BV.net 2005 y MySql 5…. el programa es el siguiente…..necesito armar una base de datos (ya la tengo) en mysql y luego atravez de codigo Vb extraer los datos de la base de datos y asignarlos a variables que estaran declaradas en el codigo VB…..lo segundo es extraer datos de una base de datos y mostrarlos en data grid y luego atravez de este modificarlos y agregbar las modificaciones a la base de datos desde el mismo data grid…. sacar datos con el datagrid y meter datos con el datagrid….agradesco a queen me pueda ayudar….my msn es

  8. Pochak, te recomendaría utilizar el conector para VB de mysql, lo puedes descargar desde:
    http://dev.mysql.com/downloads/connector/net/6.1.html

    Con esto te será más sencillo realizar todo lo que necesitas, que es bastante fácil de realizar.

  9. Yo tengo mi modulo de conexion a la base de datos pero no se como hacer la autenticacion del usuario aqui les dejo mi codigo de la base de datos y el formulario

    Imports System.Net.Sockets
    Imports System.Text
    Imports System
    Imports Microsoft.Win32
    Imports System.Net
    Imports System.Data
    Imports System.IO
    Imports MySql.Data.MySqlClient
    Imports System.Data.SqlClient

    Module DB
    Public Function Conexion(ByVal Cadena As String) As String
    Dim IPMySql As String = “127.0.0.1” ‘IP de La Base de Datos’
    Dim DBUser As String = “root” ‘ Usuario de la Base de Datos’
    Dim DBPassword As String = “fire-xtreme” ‘Clave de la Base de Datos’
    Dim DBname As String = “web” ‘Nombre de Mi DataBase’

    ‘Conexion a la Base de Datos’
    Dim Connexion As New MySqlConnection()

    Connexion.ConnectionString = “server=” & IPMySql & “; user id=” & DBUser & “; password=” & DBPassword & “; database=” & DBname
    Try
    Connexion.Open()
    ‘MessageBox.Show(“Connection Opened Successfully”)

    Connexion.Close()
    Catch myerror As MySqlException
    Dim i As Integer
    i = 1
    Finally
    Connexion.Dispose()
    End Try

    ‘ Retornando conexión.
    Return (MsgBox(Cadena, vbInformation, “Enviando Conexión!”))
    End Function
    End Module

    en mi formulario dfe login hago la llamada en el boton de entrar

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Conexion(“Recibiendo conexión”)
    End Sub

    espero su ayuda por favor

  10. Hola buenas tardes querria pedirte el codigo adaptado para hacer login usando vb.net conectandolo a mysql,lo que quiero esque los usuarios de my web  (phpbb3.0.7)puedan loguearse y usar el resto del programa pero no lo consigo

    • Hola Ivan:

      El código que aquí expongo es vb.net conectando a una Base de datos en MySQL, no entiendo que más necesitas, ya que si he entendido bien, tu quieres que los datos los recoja de la base de datos de usuarios que te generó phpbb, pues solo tienes que enlazar las consultas a esas tablas.

  11. he estado intentando manejar lo que son las seciones en v.b 2008, la solucion que porel momento tengo es la siguiente
    cree u modulo llamado usuarios con los dos variables que quierro utilizar en los otros formularios que en el caso seria el id.
    ya con eso en mi primer formulario- inicio de sesion lo igualo al txt, y listo ya puedo llamarlo desde mi formulario dos-menu.

    aqui les dejo el codigo:

    Imports System.Data
     

     
     
     
     
     
     

    Imports MySql.Data
     

    Imports MySql.Data.MySqlClient
     

    Public Class iniciarsesion
     

     
    Inherits System.Windows.Forms.Form

     
    Dim conex As
    MySqlConnection
     

     
    Public nombre As String =
    “”
     

     
    Public password As String =
    “”
     

     
     

     
     
    Private Sub ingresar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ingresar.Click
     
     
     
     
    ‘inicia coneccion
     
     conex = New MySqlConnection()
    conex.ConnectionString = “server=localhost;database=Tienda;user id=root; password=;”
     

     
     

     

     
     
     
    ‘see of database failet
     
     

     

     
     
     
    Try
     
     

     
    conex.Open()
     
     
     

     
     
    Catch mierror As
     
    MySqlException
     
     
     
    MessageBox.Show(
     
     
    “Error de Conexin a la Base de Datos: ”
     
    & mierror.Message)
     
     
     

     
     
    End
     
    Try
     
     

     

     
     
     
    ‘termina coneccion
     
     

     

     
     
    Dim myadapter As New
     
    MySqlDataAdapter
     
     
     

     
     
     
     
     
     

     

     
     
    Dim cmd = (“SELECT*FROM usuario WHERE nombreu='” + txtusuario.Text + “‘AND contra='” + txtpasword.Text + “‘”
     
    )
     
     
     

     
     

     

     
     
     

     
     

     

     
     
    Dim mycomand As New
     
     
     
    MySqlCommand()
     
     
     
    mycomand.Connection = conex
     
     
     
    mycomand.CommandText = cmd
     
     
     

     
     
     
    ‘star query
     
     

     
    myadapter.SelectCommand = mycomand
     
     
     

     
     
    Dim mydata As
     
    MySqlDataReader
     
     
     
    mydata = mycomand.ExecuteReader
     
     
     

     
     
     
     
     
     

     

     
     
    If mydata.HasRows = 0
     
    Then
     
     

     

     
     

     

     
     

     
    MessageBox.Show(
     
     
    “usuario y contrasea invalidos”
     
    )
     
     
     

     
     
     
    Else
     
     

     

     
     

     

     
     

     
     
    nombre = txtusuario.Text
     
     
     
    password = txtpasword.Text
     
     
     

     
     

     
     
     
     

     
    menus.Show()
     
     
     

     
     
    Me
     
    .Hide()
     
     
     

     
     
    End
     
     
     
    If

     
     
     
    End Sub

     
    modulo…………………….Proyecto ->agregar nuevo modulo

     
    Module usuarios
     
    Public nombre As String
     

     
     
     
     

     
    Public password As String
    End Module
     
     
    para llamar las variables desde otro form en mi caso menu.

     
    Public Class menus
     

    Private Sub menus_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
    Label1.Text = “Nombre de usuario:” & iniciarsesion.nombre
     
    End Sub
     

     
     

    End
     
    Class
     
     
     

     
     

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

  12. Muchas gracias
    Demasiado útil 

  13. Gracias por el código, la explicación esta excelente..
     
    Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *