Horario

miércoles, 9 de septiembre de 2009

Práctica 2 en Optimización de sistemas de información

Se utilizará C# y MySQL

Ahora utilizaremos un DataGridView para visualizar los datos de manera de listado, y así podemos manejar más registros a la vez, aunque sigue siendo una forma no óptima



Librería: Hay que bajar el proyecto, porque tenemos que utilizar la librería "MySQLDriverCS.dll" para conectarnos a MySQL, ésta librería la tenemos que poner en la carpeta bin/debug



Tablas: Tenemos que crear la tabla con sus respectivas columnas para que todo funcione bien



Dudas: Si se tiene alguna duda, se actualizará el blog para que sea más descriptivo, si bajan el código podrán ver que está un poco documentado



Código

// Variables globales
MySQLConnection con;
MySQLCommand query;
MySQLDataReader data;

// Función para cargar los datos
private void CargarDatos()
{
    dgvDatos.Rows.Clear();
    query = new MySQLCommand("select * from clientes", con);
    data = query.ExecuteReaderEx();
    while (data.Read())
    {
        // Añadimos una línea nueva en nuestro DGV con la información de la
        // columna 0, 1 y 2 de nuestra tabla
        dgvDatos.Rows.Add(data.GetString(0), data.GetString(1), data.GetString(2));
    }
}

// Función load de la forma
private void Practica2_Load(object sender, EventArgs e)
{
    con = new MySQLConnection(new MySQLConnectionString("test", "root", "mientras").AsString);
    try
    {
        con.Open();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        return;
    }

    CargarDatos();
}

// Evento cuando hacemos click en el datagridview
private void dgvDatos_RowEnter(object sender, DataGridViewCellEventArgs e)
{
    // Llenamos la información de la linea seleccionada en las
    // respectivas cajitas de texto
    txtNo.Text = dgvDatos.Rows[e.RowIndex].Cells[0].Value.ToString();
    txtCliente.Text = dgvDatos.Rows[e.RowIndex].Cells[1].Value.ToString();
    txtDomicilio.Text = dgvDatos.Rows[e.RowIndex].Cells[2].Value.ToString();
}

// Botones de acción
private void btnModificar_Click(object sender, EventArgs e)
{
    query = new MySQLCommand("update clientes set cli=" + txtNo.Text
        + ", clientes=\"" + txtCliente.Text
        + "\", dom=\"" + txtDomicilio.Text
        + "\" where cli=" + dgvDatos.Rows[dgvDatos.SelectedRows[0].Index].Cells[0].Value.ToString(), con);
    query.ExecuteNonQuery();
    CargarDatos();
}

private void btnAgregar_Click(object sender, EventArgs e)
{
    query = new MySQLCommand("insert into clientes values(\"" + txtNo.Text
         + "\",\"" + txtCliente.Text + "\",\"" + txtDomicilio.Text
         + "\")", con);
    query.ExecuteNonQuery();
    CargarDatos();
}

private void btnEliminar_Click(object sender, EventArgs e)
{
    query = new MySQLCommand("delete from clientes where cli="
        + dgvDatos.Rows[dgvDatos.SelectedRows[0].Index].Cells[0].Value.ToString(), con);
    query.ExecuteNonQuery();
    CargarDatos(); 
}

Descargar: Haz click aquí para descargarla
https://dl.getdropbox.com/u/1955604/Practica2.zip

No hay comentarios.: