Bueno después de esta aclaración, vamos a lo que nos apasiona que es programar, en este articulo veremos como crear un Login en WPF usando C# y que este me muestre el nombre del usuario que a iniciado sesión. que es una de las consultas que me hacia un lector de mi blog así que manos a la obra.
El ejemplo lo he realizado usando SQL SERVER 2014 EXPRESS y VS 2017
La base de datos que ocupare en esta ocasión se llama Usuarios y solo cuenta con una tabla Usuario
Lo primero que aremos sera crear nuestro proyecto WPF en Visual Studio
Creamos el diseño de nuestro formulario
<Window x:Class="LoginWPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:LoginWPF" mc:Ignorable="d" Title="LOGIN " Height="400" Width="400" FontSize="14" Background="Black" WindowStartupLocation="CenterScreen"> <Border Background="WhiteSmoke" CornerRadius="20" Margin="20"> <StackPanel Margin="20"> <Label Foreground="Black" FontSize="25" HorizontalAlignment="Center" > <Bold> Login</Bold> </Label> <Separator Background="Black"></Separator> <Label Foreground="Blue" > <Bold>Usuario</Bold> </Label> <TextBox Name="txtUsuario" Foreground="Black" FontSize="18"></TextBox> <Label Foreground="Blue"> <Bold> Contraseña</Bold> </Label> <PasswordBox Name="txtPasword" Foreground="Black" FontSize="18"></PasswordBox> <Button Name="btnEntrar" Margin="60 10" Background="#545d6a" Foreground="Black" Height="50" Click="btnEntrar_Click"> Entrar</Button> </StackPanel> </Border> </Window>
Ahora que ya tenemos nuestro diseño, agregaremos nuestra cadena de conexión a nuestro archivo App.config(como siempre lo hemos hecho en mis anteriores artículos)
< connectionStrings> < add name="default" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Usuarios.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> < /connectionStrings>
Lo siguiente que aremos es agregar una clase a nuestro proyecto en donde manejaremos el código de nuestro login para tenerlo de una manera mas ordenado(ademas de ser una de las mejores practicas de POO)
El código que tendrá nuestra clase sera el siguiente
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Configuration; using System.Data; namespace LoginWPF { class Autenticacion { //variable nos sevira para obtener el nombre de usuario logeado public static string Nombre; public static bool Autenticar(string usuario, string password) { //consulta a la base de datos string sql = @"SELECT nombre FROM Usuario WHERE usuario = @user AND password = @pass"; //cadena conexion definida en AppConfig using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString())) { conn.Open();//abrimos conexion SqlCommand cmd = new SqlCommand(sql, conn); //ejecutamos la instruccion cmd.Parameters.AddWithValue("@user", usuario); //enviamos los parametros cmd.Parameters.AddWithValue("@pass", password); //creamos el adaptador SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); //valido si encruentra datos if (dt.Rows.Count > 0) { DataRow row = dt.Rows[0]; Nombre = Convert.ToString(row["nombre"]);//guardo el campo nombre de usuario logeado return true; } else return false; } } } }
Lo primero que hacemos es declarar una variable llamada nombre que nos servirá para obtener el nombre del usuario que inicio sesión. Luego tenemos un método Autenticar de tipo bool que recibe 2 parámetros usuario y password que serán los datos que consultaremos en la bd para verificar si son correctos o no. El método nos retornara verdadero si los datos ingresados son correctos, y si son correctos guarda en la variable Nombre el nombre del usuario que inicio sesión.
Importante: dentro de esta clase que creamos agregar la referencia System.Configuration
Ahora dentro del evento click del botón entrar tendremos el siguiente código
private void btnEntrar_Click(object sender, RoutedEventArgs e) { //validamos datos ingresados llamando nuestro metodo Autenticar de la clase Autenticacion if(Autenticacion.Autenticar(txtUsuario.Text,txtPasword.Password)) { //si los datos son correctos muestro nombre de usuario MessageBox.Show("Bienvenido:" + Autenticacion.Nombre); } else { //si los datos no son correctos MessageBox.Show("Ingrese Datos Correctos"); } }
Como pueden ver lo único que hacemos es invocar el método Autenticar de la clase que creamos Autenticacion y le enviamos como argumentos los datos de las cajas de textbox, si los datos son correctos mostramos un mensaje con el nombre del usuario y si son incorrectos le mostramos un mensaje para que ingrese los datos correctos.
Bueno eso seria todo espero le sea útil, en los próximos artículos estaré poniendo ejemplos de java para android y un poco de php saludos desde El Salvador...
Descargar Proyecto C#
Si quieren donarme para una soda lo pueden hacer aqui.
0 Comentarios