6 de febrero de 2012

Login C#

Ahora el Login se hará en C#, para eso creamos un nuevo proyecto y le llamo Login


Ahora nos conectaremos a una tabla llamada registro dentro de una base llamada empleado, para mas detalle esta la entrada:  http://pabletoreto.blogspot.com/2012/02/login-vb.html  y seguimos los pasos hasta la creación del formulario de Login pues exactamente lo mismo para VB que para C#.


Class Kode
para continuar, agregar una clase al proyecto y le pondré de nombre login.cs




listo, ahora copiamos y pegamos el siguiente código dentro de la clase:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Configuration;

namespace Login
{
    class logic
    {

        string sql = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
        SqlConnection conex;
        SqlCommand cmd;
        SqlDataReader dr;
        SqlDataAdapter da;
        DataTable dt;
        public Form1 login;
        public Gestion usuarios;

        public void datos(string val1, string val2)
        {

            using (conex = new SqlConnection(sql))
            {
                using (cmd = new SqlCommand())
                {
                    conex.Open();
                    cmd.Connection = conex;
                    cmd.CommandText = "select * from registro where username=@user and password=@password";
                    cmd.Parameters.AddWithValue("@user", val1);
                    cmd.Parameters.AddWithValue("@password", val2);
                    dr = cmd.ExecuteReader();
                    if (dr.Read())
                    {
                        login = new Form1();
                        usuarios = new Gestion();
                        login.Close();
                        usuarios.Show();
                    }
                    else
                    {
                        MessageBox.Show("el dato no existe");
                    }
                    dr.Dispose();
                }
            }

        }


        public void InsertarDatos(String val1, string val2)
        {
            using (conex = new SqlConnection(sql))
            {
                {
                    using (cmd = new SqlCommand())
                    {
                        conex.Open();
                        cmd.Connection = conex;
                        cmd.CommandText = "insert into registro values(@user,@password)";
                        cmd.Parameters.AddWithValue("@user", val1);
                        cmd.Parameters.AddWithValue("@password", val2);
                        cmd.ExecuteNonQuery();
                        MessageBox.Show("datos ingresados correctamente");
                    }

                }

            }
        }

        public void EliminarDatos(string val1)
        {
            using (conex = new SqlConnection(sql))
            {
                {
                    using (cmd = new SqlCommand())
                    {
                        conex.Open();
                        cmd.Connection = conex;
                        cmd.CommandText = "delete from registro where id=@id";
                        cmd.Parameters.AddWithValue("@id", val1);
                        cmd.ExecuteNonQuery();
                        MessageBox.Show("Datos eliminados correctamente");
                    }

                }
            }
        }

        public void ActualizarDatos(string val1, string val2, string val3)
        {
            using (conex = new SqlConnection(sql))
            {
                {
                    using (cmd = new SqlCommand())
                    {
                        conex.Open();
                        cmd.Connection = conex;
                        cmd.CommandText = "update registro set username=@user, password=@pass where id=@id";
                        cmd.Parameters.AddWithValue("@id", val1);
                        cmd.Parameters.AddWithValue("@user", val2);
                        cmd.Parameters.AddWithValue("@pass", val3);
                        cmd.ExecuteNonQuery();
                        MessageBox.Show("Datos actualizados correctamente");

                    }
                }

            }
        }

        public DataTable Cargar()
        {
            using (conex = new SqlConnection(sql))
            {
                {
                    conex.Open();
                    string sen = "select * from registro";

                    using (da = new SqlDataAdapter(sen, conex))
                    {
                        using (dt = new DataTable())
                        {
                            da.Fill(dt);
                            return dt;
                        }
                    }
                }

            }

        }
    }
    }


Login Kode

este sera el diseño del formulario de login que utilizare con su respectivo código, dentro del cual utilice dos componentes llamados ErrorProvider, así que se deben agregar al formulario, estos simplemente validan que los textbox no estén vacíos al presionar el botón de login :


Aquí el formulario en vista diseño con los dos componentes:


Aquí el formulario cuando el proyecto esta en ejecución:



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.Configuration;
using System.Data.SqlClient;

namespace Login
{
    public partial class Form1 : Form
    {
        logic accion = new logic();
        public Form1()
        {
            InitializeComponent();
           
                    }

      
      
        private void Form1_Load(object sender, EventArgs e)
        {
           
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                errorProvider1.SetError(textBox1, "favor definir username");
            }
            else if (textBox2.Text == "")
            {
                errorProvider1.SetError(textBox2, "favor definir password");
            }
            else
            {

                accion.datos(textBox1.Text, textBox2.Text);
            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            errorProvider1.SetError(textBox1, "");
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            errorProvider1.SetError(textBox2, "");
        }
           
        }
            }


Usuarios Kode

Ahora el formulaio al que se tendra acceso al detallar correctamente los datos en el form de Login, en este formulario se podran gestionar los usuarios a nuestro sistema, esto es, mostrar usuarios registrados, agregar usuarios nuevos, modificar y eliminar usuarios existentes.

el diseño quedo de la siguiente manera con textbox1 usado para mostrar el ID unico del usuario, textbox2 para mostrar el username de los usuarios existentes y definir el username de nuevos usuarios, por ultimo textbox3 muestra el password de usuarios registrados y permite definir el password de nuevos usuarios, tambien se utilizan DatagridView y BindingNavigator: 


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;

namespace Login
{
    public partial class Gestion : Form
    {
        logic gestion = new logic();
        BindingSource bs;
        public Gestion()
        {
            InitializeComponent();
        }

        private void Gestion_Load(object sender, EventArgs e)
        {
            bs=new BindingSource();
            bs.DataSource=gestion.Cargar();
            bindingNavigator1.BindingSource = bs;
            dataGridView1.DataSource = bs;
            textBox1.DataBindings.Clear();
            textBox2.DataBindings.Clear();
            textBox3.DataBindings.Clear();
            textBox1.DataBindings.Add("text", bs, "id");
            textBox2.DataBindings.Add("text", bs, "username");
            textBox3.DataBindings.Add("text", bs, "password");
        }
       
        private void Agregar_Click(object sender, EventArgs e)
        {
            gestion.InsertarDatos(textBox2.Text, textBox3.Text);
        }

        private void Modificar_Click(object sender, EventArgs e)
        {
            gestion.ActualizarDatos(textBox1.Text, textBox2.Text, textBox3.Text);
        }

        private void Eliminar_Click(object sender, EventArgs e)
        {
            gestion.EliminarDatos(textBox1.Text);
        }
    }
}