Validar un Login en C# con la base de datos

publicado por: Anonymous

intento validar un Login en C# con la base de datos MySQL, o más conocida como el localhost de XAMPP. Pero no me conecta y ya he buscado y probado cosas pero no funciona.

La idea es que el que ingrese, muestre un formulario que diga BIENVENIDO (NOMBRE) y luego aparezca Administrador/Usuario dependiendo de quién ingrese,

Acá el código que tengo en C#:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace login
{
    public partial class login : Form
    {
        public login()
        {
            InitializeComponent();
        }

        //Conexión con BD, pasamos los parámetros   nombre del servidor o BD    Nombre de la BD (ejemplo)    Seguridad
        SqlConnection con = new SqlConnection(@"Data Source=(127.0.0.1);Initial Catalog=ejemplo;Integrated Security=True");

        public void logear(string usuario, string contrasena)
            {
            try
                {
                con.Open();
                //Comando SQL que va a buscar a la BD 
                SqlCommand cmd = new SqlCommand("SELECT Nombre, Tipo_Usuario FROM usuarios WHERE Usuario = @usuario AND Contrasena = @pass", con);
                //Agregamos parámetros a nuestro comando para usuario y contraseña
                cmd.Parameters.AddWithValue("usuario", usuario);
                cmd.Parameters.AddWithValue("pass", contrasena);

                //Nuevo objeto de SQL data adapter
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                //Llenar el DataTable con datos
                sda.Fill(dt);

                //Evalua si nuestra consulta devuelve filas, si devuelve existe el registro
                if(dt.Rows.Count == 1)
                    {
                    //Comando que oculta el formulario
                    this.Hide();

                    //Verificamos qué tipo de usuario está ingresando
                    //Accedemos al tipo de columna, 0 = Nombre, 1 = Tipo_Usuario
                    if(dt.Rows[0][1].ToString() == "Admin")
                        {
                        //Si es Admin, vamos a mostrar el formulario de Administrador
                        new Admin(dt.Rows[0][0].ToString()).Show();
                        }
                        else if(dt.Rows[0][1].ToString() == "Usuario")
                            {
                            //Si es Usuario, vamos a mostrar el formulario de Usuario
                            new Usuario(dt.Rows[0][0].ToString()).Show();
                            }
                    }
                    else
                        {
                        MessageBox.Show("Usuario y/o Contraseña incorrecta");
                        }

                }
                catch(Exception e)
                    {
                    MessageBox.Show(e.Message);
                    }
                    finally
                        {
                        con.Close();
                        }
            }

        private void btnInicioSesion_Click(object sender, EventArgs e)
            {
            logear(this.textBox1.Text, this.textBox2.Text);
            }
    }
}

La conexión que tengo no me funciona. Quiero saber qué de pronto estoy haciendo mal para poder corregirlo.

La información o tablas que tengo en la BD son:

Ejemplo = Nombre de la Base de datos

usuarios = Nombre de la tabla

Id_Usuario = es auto incrementable

Nombre

Usuario

Contrasena

Tipo_Usuario = Admin o Usuario

solución

SqlConnection es para SQL Server. Necesitas MySqlConnection. La librería y su documentación la puedes descargar y leer de aquí: MySql NET

Tendrías que sustituir todas las clases de SqlClient por sus correspondientes en la librería.

También la cadena de conexión cambia, en la documentación del enlace que te pasé hay ejemplos. En específico, aquí podrás ver la cadena de conexión utilizada Cadena conexión

Espero haberte ayudado, saludos.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *