lunes, 1 de agosto de 2016

Login en 3 capas con procedimiento almacenado

Hola amigos aqui les dejo un login hecho en C# Y SQL Server con la programación en 3 capas.
Te obtiene tl tipo de usuario para tener restricciones en nuestra aplicación.
La tabla en SQL Server
create table Usuario
(
   id_login int identity primary key,
   USUARIO varchar(20) NOT NULL CONSTRAINT chUser check(USUARIO <> ''),
   CONTRASEÑA varchar(20) NOT NULL CONSTRAINT chConrtra check(CONTRASEÑA <> ''),
   ACCESO varchar(20) NOT NULL CONSTRAINT chAcceso check(ACCESO <> '' AND  (ACCESO IN('Administrador','Usuario')))
)
Aqui el procedimiento almacenado en SQL Server
create proc Acceso
@user varchar(20),
@contra  varchar(20)
as 
Select * from Usuario
where USUARIO =  @user AND CONTRASEÑA =@contra
go
Clase Datos en C#
public DataTable Login(string usu,string con)
{
            DataTable login = new DataTable("Login");
            SqlConnection sql = new SqlConnection();
            try
            {
                sql.ConnectionString = Conexion.con;

                SqlCommand sqlCm = new SqlCommand("Acceso", sql);
                sqlCm.CommandType = CommandType.StoredProcedure;

                sqlCm.Parameters.Add("@user", SqlDbType.VarChar).Value = usu;
                sqlCm.Parameters.Add("@contra", SqlDbType.VarChar).Value = con;

                SqlDataAdapter sqlAdp = new SqlDataAdapter(sqlCm);
                sqlAdp.Fill(login);

            }
            catch
            {
                login = null;
            }
            return login;
}
Clase Negocio en C#
public static DataTable Acceso(string us,string  con)
{
            DLogin login = new DLogin();
            return login.Login(us, con);
}
Clase Presentacion en C#
private void button1_Click(object sender, EventArgs e)
{
            DataTable tabla = NLogin.Acceso(textBox1.Text,textBox2.Text);
            if (tabla.Rows.Count == 0)
            {
                MessageBox.Show("No existe el usuario", "Sistema Login", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                FrmInicio obj = new FrmInicio();
                //Aqui obtenemos el tipo del acceso del usuario por si queremos poner restricciones en nuestra aplicación
                obj.tipoUser = tabla.Rows[0][3].ToString();
                obj.nombre = tabla.Rows[0][1].ToString();
                obj.ShowDialog();
                this.Hide();
            }
}
Ejemplo

Cualquier duda no duden en preguntar y dejar un comentario sobre la aplicación.

7 comentarios: