Un tutorial sobre cómo desarrollar una aplicación en Visual Studio con el lenguaje de programación C Sharp que permita iniciar sesión e identificar al tipo de usuario en una base de datos, utilizando el sistema de bases de datos Microsoft SQL Server.
Código Fuente
Script Base de Datos
Script Base de Datos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | USE master CREATE DATABASE escuela GO USE escuela CREATE TABLE usuario ( nombreUsuario nvarchar(20) PRIMARY KEY not null, contrasena nvarchar(20) not null, nombre nvarchar(50) not null, apellidoPaterno nvarchar(50) not null, apellidoMaterno nvarchar(50), tipoUsuario nvarchar(20) not null ) GO INSERT INTO usuario VALUES('jesus', '123A', 'Jesús', 'Morales', 'Campos', 'Administrador') INSERT INTO usuario VALUES('roberto', '123456', 'Roberto', 'Castro', 'Morales', 'Profesor') GO |
Clase BaseDatos.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; namespace InicioSesion { class BaseDatos { private string cadenaConexion = "Data Source=JEOVANI-PC; Initial Catalog=escuela; Integrated Security=true;"; public static string nombreCompleto = ""; public static string tipoUsuario = ""; public Boolean iniciarSesion(string nomus, string con) { nombreCompleto = ""; tipoUsuario = ""; SqlConnection conexion = new SqlConnection(cadenaConexion); conexion.Open(); SqlParameter parnomus = new SqlParameter("@nomus", nomus); SqlParameter parcon = new SqlParameter("@con", con); SqlCommand comando = new SqlCommand("SELECT nombre, apellidoPaterno, apellidoMaterno, tipoUsuario FROM usuario WHERE nombreUsuario = @nomus AND contrasena COLLATE Latin1_General_CS_AS = @con", conexion); comando.Parameters.Add(parnomus); comando.Parameters.Add(parcon); SqlDataReader lector = comando.ExecuteReader(); while (lector.Read()) { nombreCompleto = lector.GetString(0) + " " + lector.GetString(1) + " " + lector.GetString(2); tipoUsuario = lector.GetString(3); } lector.Close(); conexion.Close(); if (String.IsNullOrEmpty(tipoUsuario)) { return false; } else { return true; } } } } |
Form1.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 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; namespace InicioSesion { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btiniciarsesion_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(tbnombreusuario.Text) && !String.IsNullOrEmpty(tbcontrasena.Text)) { try { BaseDatos bd = new BaseDatos(); Boolean res = bd.iniciarSesion(tbnombreusuario.Text, tbcontrasena.Text); if (res) { Principal p = new Principal(); p.Show(); this.Hide(); } else { MessageBox.Show("Datos Incorrectos"); } } catch { MessageBox.Show("Error"); } } else { MessageBox.Show("Complete los datos"); } } } } |
Principal.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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; namespace InicioSesion { public partial class Principal : Form { public Principal() { InitializeComponent(); labelusuario.Text = BaseDatos.nombreCompleto; if (BaseDatos.tipoUsuario == "Administrador") { paneladministrador.Visible = true; panelprofesor.Visible = false; } else if (BaseDatos.tipoUsuario == "Profesor") { paneladministrador.Visible = false; panelprofesor.Visible = true; } } private void Principal_FormClosed(object sender, FormClosedEventArgs e) { Application.Exit(); } } } |




















