miércoles, 21 de septiembre de 2011

Hacer un Login usando Base de datos SQL en C#


Un pequeño ejemplo de como crear un login utilizando una base de datos.



Desarrollo:

Necesitamos crear dos formularios el primero llamado Login, el segundo Principal que será al que queremos acceder si la contraseña es correcta.

Para el login necesitamos crear el formulario tal como se muestra en la imagen principal:

 

Teniendo siempre en cuanta que se debe de cambiar la propiedad name a cada uno de los controles, para poder tener mayor control sobre el
formulario cuando se esta programando. En forma de validación he dejado la propiedad Eenable del botón iniciar en False esto servirá para no ejecutar el codigo que se encuentra en el sin antes tener llenos los textbox, de lo contrario dara un error.
Para el formulario Principal:

 


Este formulario no tiene ninguna función especial nada mas sirve para poder verificar que el login se ha hecho correctamente. En el caso de crear un sistema este podría ser el menú principal un formulario MDI por ejemplo. Pero basta con este para hacer la demostración.



CODIFICACIÓN

Crear la base de datos, la tabla con sus campos y llenando con un registro por lo menos. Al descargar el proyecto trae el scrip de la base de datos. Se puede ejecutar y listo(Por defecto el usuario es fernando y la contraseña es pepito). NOTA en el código esta la conexión a la base de datos ese código es suficiente para que pueda funcionar en cualquier computadora.


Formulario Login:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;//necesario para poder acceder a SQL

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

private void btnIniciar_Click(object sender, EventArgs e)
{
try
{
//creando la conexion
SqlConnection miConecion = new SqlConnection(@"server=.\SQLEXPRESS; Initial Catalog = loginbd; Integrated Security=True;");
//abriendo conexion
miConecion.Open();

SqlCommand comando = new SqlCommand("select usuario, contraseña from Tblusuario where usuario = '" + txtusuario.Text + "'And contraseña = '" + txcontraseña.Text + "' ", miConecion);

//ejecuta una instruccion de sql devolviendo el numero de las filas afectadas
comando.ExecuteNonQuery();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(comando);

//Llenando el dataAdapter
da.Fill(ds, "Tblusuario");
//utilizado para representar una fila de la tabla q necesitas en este caso usuario
DataRow DR;
DR = ds.Tables["Tblusuario"].Rows[0];

//evaluando que la contraseña y usuario sean correctos
if ((txtusuario.Text == DR["usuario"].ToString()) || (txcontraseña.Text == DR["contraseña"].ToString()))
{
//instanciando el formulario principal
Principal frmPrincipal = new Principal();
frmPrincipal.Show();//abriendo el formulario principal
this.Hide();//esto sirve para ocultar el formulario de login
}

}
catch
{
//en caso que la contraseña sea erronea mostrara un mensaje
//dentro de los parentesis va: "Mensaje a mostrar","Titulo de la ventana",botones a mostrar en ste caso OK, icono a mostrar en este caso uno de error
MessageBox.Show("Error! Su contraseña y/o usuario son invalidos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}

private void btnCancelar_Click(object sender, EventArgs e)
{
//Salir de la aplicacion
Application.Exit();
}

private void txtusuario_TextChanged(object sender, EventArgs e)
{
//aca se activa el boton INICIAR
btnIniciar.Enabled = true;
}
}
}



Para el Formulario principal en el botón salir nada mas:

Application.Exit();
Descargar el proyecto completo
Publicar un comentario