Administrador de Contactos> en esta sesion, agregamos un boton mas a nuestra aplicacion de contactos, con la finalidad de poder editar un contacto existente.

Ventana de Aplicacion

…con esto, se agregaron dos metodos al codigo de la forma:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

con este metodo manejamos el evento click del ListBox, y hacemos varias cosas:

– activamos el boton “actualizar”, deshabilitamos el boton “agregar”, y el TextBox para “email” (esto porque email es nuestro identificador unico y no permitiremos que se modifique).

el segundo metodo es:

private void button6_Click(object sender, EventArgs e)

en este metodo manejamos el click para el boton “actualizar”, y hacemos lo sig>:

– actualizamos en tabla los datos del contacto seleccionado; regresamos a los botones a su estado de “agregar”

—–

A continuacion el codigo completo:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace uacj_Contactos
{
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }
private void Form1_Load(object sender, EventArgs e)
  {
  displayContacts("1=1");
  }
private void displayContacts(string filtro) {
  listBox1.Items.Clear();
  OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\\contactos.mdb");
  OleDbCommand cmd = new OleDbCommand("SELECT * FROM contactos WHERE ("+filtro+") ORDER BY nombre ASC");
  cmd.Connection = conn;
  cmd.Connection.Open();
  OleDbDataReader reader = cmd.ExecuteReader();
  while (reader.Read()) {
  listBox1.Items.Add(reader["nombre"].ToString() + " - " + reader["email"].ToString());
  }
  reader.Dispose();
  cmd.Dispose();
  conn.Dispose();
  }
private void button3_Click(object sender, EventArgs e)
  {
  displayContacts("email LIKE '%yahoo.com%'");
  }
private void button4_Click(object sender, EventArgs e)
  {
  displayContacts("email LIKE '%hotmail.com%'");
  }

private void button5_Click(object sender, EventArgs e)
  {
  displayContacts("email LIKE '%"+textBox3.Text+"%'");
  }

private void button1_Click(object sender, EventArgs e)
  {
  OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\\contactos.mdb");
  OleDbCommand cmd = new OleDbCommand("INSERT INTO contactos (email,nombre) VALUES ('"+textBox1.Text+"','"+textBox2.Text+"')");
  cmd.Connection = conn;
  cmd.Connection.Open();
  cmd.ExecuteNonQuery();
  cmd.Dispose();
  conn.Dispose();
  displayContacts("1=1");
  }

private void button2_Click(object sender, EventArgs e)
  {
  string[] valores = listBox1.Text.Split('-');
  string email = valores[valores.Length-1].Trim();
  OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\\contactos.mdb");
  OleDbCommand cmd = new OleDbCommand("DELETE FROM contactos WHERE (email = '"+email+"')");
  cmd.Connection = conn;
  cmd.Connection.Open();
  cmd.ExecuteNonQuery();
  cmd.Dispose();
  conn.Dispose();
  displayContacts("1=1");
  }

private void button6_Click(object sender, EventArgs e)
  {
  OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\\contactos.mdb");
  OleDbCommand cmd = new OleDbCommand(
  "UPDATE contactos SET nombre = '" +
  textBox2.Text + "' WHERE (email = '" + textBox1.Text + "')");
  cmd.Connection = conn;
  cmd.Connection.Open();
  cmd.ExecuteNonQuery();
  cmd.Dispose();
  conn.Dispose();
  displayContacts("1=1");
  textBox1.Enabled = true;
  button6.Enabled = false;
  button1.Enabled = true;
  textBox1.Text = "";
  textBox2.Text = "";

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
  {
  button1.Enabled = false;
  button6.Enabled = true;
  textBox1.Enabled = false;
  string[] valores = listBox1.Text.Split('-');
  OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\\contactos.mdb");
  OleDbCommand cmd = new OleDbCommand("SELECT * FROM contactos WHERE (email = '"+valores[1].Trim()+"')");
  cmd.Connection = conn;
  cmd.Connection.Open();
  OleDbDataReader reader = cmd.ExecuteReader();
  while (reader.Read())
  {
  textBox1.Text = reader["email"].ToString();
  textBox2.Text = reader["nombre"].ToString();
  // asi con cada columna de nuestro contacto...
  }
  reader.Dispose();
  cmd.Dispose();
  conn.Dispose();
  }
  }
}

descargar el proyecto: Proyecto Completo
Nota del archivo: es un .zip pero el blog no me lo acepto asi que lo renombre a .zip.gif; fovor de renombrarlo a .zip para poder extraer su contenido;
Nota 2: copiar la base de datos a C:, o bien, actualizar la ruta en el connectionString del OleDbConnection.

Disculpas por la tardanza... :P

Anuncios