lunes, 8 de agosto de 2016

Login tipo Google en C# y SQL Server

Hola aqui les comparto una aplicación en C# es un login tipo Google. En esta imagen se muestra la pantalla principal de como quedaria.
Primero que nada les compartire la tabla y los procedimientos almacenados que utilize para esta aplicación la base de datos esta creada en SQL Server.

create table Login
(
   id int primary key identity,
   nombre varchar(50) not null check(nombre <> ''),
   apellidos varchar(50) not null check(apellidos <> ''),
   correo varchar(50) not null check(correo <> ''),
   contra varchar(50) not null check(contra <> ''),
   imagen image
)


create proc spInsertarLogin
@nombre varchar(50),
@apellidos varchar(50),
@correo varchar(50),
@contra varchar(50),
@imagen image
as
 INSERT INTO Login(nombre,apellidos,correo,contra,imagen) VALUES(@nombre,@apellidos,@correo,@contra,@imagen);
go

create proc spMostrarImagen
@correo varchar(50)
as
  SELECT id,nombre,apellidos,correo,imagen FROM Login
  WHERE correo =@correo;
go


create proc spAcceso
@correo varchar(50),
@contra varchar(50)
as
   SELECT * FROM Login
  WHERE correo= @correo AND contra= @contra ;
go
Ahora les compartire nuesta clase Login hecha en C#

class Login
{
        private string nombre;
        private string apellidos;
        private string correo;
        private string contra;
        private PictureBox imagen;

        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        public string Apellidos
        {
            get { return apellidos; }
            set { apellidos = value; }
        }

        public string Correo
        {
            get { return correo; }
            set { correo = value; }
        }

        public string Contra
        {
            get { return contra; }
            set { contra = value; }
        }

        public PictureBox Imagen
        {
            get { return imagen; }
            set { imagen = value; }
        }

        public Login() { }

        public Login(string nom, string ape, string correo, string contra, PictureBox imagen)
        {
            this.Nombre = nom;
            this.Apellidos = ape;
            this.Correo = correo;
            this.Contra = contra;
            this.Imagen = imagen;
        }

        public string InsertarLogin()
        {
            string resp = "";
            SqlConnection sqlCon = new SqlConnection(Conexion.conexion);
            try
            {
                sqlCon.Open();

                SqlCommand sqlCm = new SqlCommand("spInsertarLogin", sqlCon);
                sqlCm.CommandType = CommandType.StoredProcedure;

                sqlCm.Parameters.Add("@nombre", SqlDbType.VarChar).Value = Nombre;
                sqlCm.Parameters.Add("@apellidos", SqlDbType.VarChar).Value = Apellidos;
                sqlCm.Parameters.Add("@correo", SqlDbType.VarChar).Value = Correo;
                sqlCm.Parameters.Add("@contra", SqlDbType.VarChar).Value = Contra;
                sqlCm.Parameters.Add("@imagen", SqlDbType.Image);

                // Stream usado como buffer
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                // Se guarda la imagen en el buffer
                Imagen.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                // Se extraen los bytes del buffer para asignarlos como valor para el parametro
                sqlCm.Parameters["@imagen"].Value = ms.GetBuffer();


                resp = sqlCm.ExecuteNonQuery() == 1 ? "Usuario registrado" : "Error al registrar usuario";


            }
            catch (Exception ex)
            {
                resp = ex.Message;
            }
            finally
            {
                if (sqlCon.State == ConnectionState.Open) sqlCon.Close();
            }

            return resp;
        }


        public DataTable MostrarImagen(string correo)
        {
            DataTable tabla = new DataTable("imagen");
            SqlConnection sqlCon = new SqlConnection(Conexion.conexion);
            try
            {
                SqlCommand sqlCm = new SqlCommand("spMostrarImagen", sqlCon);
                sqlCm.CommandType = CommandType.StoredProcedure;
                sqlCm.Parameters.Add("@correo", SqlDbType.VarChar).Value = correo;

                SqlDataAdapter sqlAdp = new SqlDataAdapter(sqlCm);
                sqlAdp.Fill(tabla);
            }
            catch
            {
                tabla = null;
            }

            return tabla;

        }


        public DataTable Acceder(string correo, string contra)
        {
            DataTable tabla = new DataTable("login");
            SqlConnection sqlCon = new SqlConnection(Conexion.conexion);
            try
            {
                SqlCommand sqlCm = new SqlCommand("spAcceso", sqlCon);
                sqlCm.CommandType = CommandType.StoredProcedure;
                sqlCm.Parameters.Add("@correo", SqlDbType.VarChar).Value = correo;
                sqlCm.Parameters.Add("@contra", SqlDbType.VarChar).Value = contra;

                SqlDataAdapter sqlAdp = new SqlDataAdapter(sqlCm);
                sqlAdp.Fill(tabla);
            }
            catch
            {
                tabla = null;
            }

            return tabla;

        }
}
Como vemos en el código hay un método que se llama MostrarImagen en la primer imagen que mostramos al principio nos pide nuestro correo electrónico al capturar al correo nos muestra como en Google nuestro nombre, correo y la imagen de nuestro perfil y por el último nos pide nuestra contraseña como muestra la siguiente imagen.

 Si nos datos son correctos nos dará acceso al sistema en este aplicación solo se muestra un mensaje de bienvenida.

La aplicación esta validada con los mensajes de Google como lo muestra las siguientes imagenes.



Por último la imagen de como quedo el Form de agregar una cuenta nueva es parecida a la de Google.

Dejar un comentario.
Descargar

viernes, 5 de agosto de 2016

Arreglos de objetos en PHP

Hola amigos aqui les comparto un ejemplo de como guardar objtetos en un arreglo en PHP, en este ejemplo guardaremos estudiantes su nombre y matricula.
nombre = $nom;
  $this->matricula = $mat;
 }
 public function Agregar(Alumno $al)
 {
       $this->objAlumno[$this->indice] = $al;
       $this->indice++;
 }

 public function getNombre()
 {
  return $this->nombre;
 }
    
 public function getMatricula()
 {
  return $this->matricula;
 }

 public function Mostrar()
 {
  foreach ($this->objAlumno as $item)
  {
   echo "Nombre: ".$item->getNombre()."
"; echo "Matricula: ".$item->getMatricula()."
"; } } } //$nombre = $_POST['nombre']; //$matricula = $_POST['matricula']; //$obj1 = new Alumno($nombre,$matricula); //$obj1->Agregar($obj1); //$obj1->Mostrar(); $obj1 = new Alumno("Misael Alanis","12121212"); $obj2 = new Alumno("Luar Alanis","10101010"); $obj1->Agregar($obj1); $obj1->Agregar($obj2); $obj1->Mostrar(); ?>

Ejemplo
Dejar un comentario.

Pasar datos de un formulario a otro C#

Hola amigos aqui les dejo una aplicación de como pasar datos entre formularios y la vamos hacer pasando parametros por medio del constructor de la clase hija.

Primero una imagen de como quedaria el form en este ejemplo.

Ahora el código de como enviaremos esos datos al otro formulario primero declaramos una instancia del formulario hijo dentro del button del formulario padre  y le enviamos los parámetros  por medio del constructor.

private void button1_Click_1(object sender, EventArgs e)
{
   FormB frm = new FormB(textBox1.Text,textBox2.Text);
   frm.ShowDialog();
}
Ahora nos vamos al formulario hijo y  recibimos los parametros en el constructor en este caso los muestro nomas en un label para ver el ejemplo.

public FormB(string nombre,string apellidos)
{
  InitializeComponent();
  label2.Text = nombre + " " + apellidos;
} 
Aqui la imagen de como quedaria nuestra aplicación


Dejar un comentario.

jueves, 4 de agosto de 2016

Pasar datos de un datagridview a textbox C# con CellDoubleClick.

Hola amigo aqui les dejo una de las maneras de pasar datos de un datagridview a textbox lo hacemos por medio uno de los eventos del datagridview que es el CellDoubleClick.

Aqui el código
private void Form1_Load(object sender, EventArgs e)
{
            dataGridView1.Rows.Add();
            dataGridView1[0, 0].Value = "Ejemplo 1";
            dataGridView1[1, 0].Value = "Valor 1";
            dataGridView1.Rows.Add();
            dataGridView1[0, 1].Value = "Ejemplo 2";
            dataGridView1[1, 1].Value = "Valor 2";
}

 private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
            textBox1.Text = Convert.ToString(dataGridView1.CurrentRow.Cells[0].Value);
            textBox2.Text = Convert.ToString(dataGridView1.CurrentRow.Cells[1].Value);
}

Seleccionaremos una fila del datagridview y daremos doble click.


Dejar un comentario.

miércoles, 3 de agosto de 2016

Login con imagen(PictureBox) tipo Facebook con perfil en C# Y SQL Server

Hola amigos aqui les dejo una aplicación donde hacemos un login con imagen y la guardamos en la base de datos. Cuando el usuario inicia sesión obtenomos sus datos y los mostramos como un inicio de sesión estilo facebook. Cuenta con permisos de usuario el Administrador puede agregar nuevos usuarios administradores mientras que el usuario Invitado no cuenta con esos permisos. Aqui el ejemplo de cuando el usuario es Administrador en la imagen mostramos habilitados los dos botones.

Administrador
Mientras si es tipo el usuario es tipo Invitado habilita solo un boton como muestra la siguiente imagen.
Invitado
Tenemos una opción donde podemos ver nuestro perfil aqui el ejemplo.



Aqui el formulario donde ingresamos usuarios cuando eres Administrador.

Insertar usuario
Descargar
Dejar un comentario.