Actualizar DataGridview con C#

Siguiendo con el post anterior ahora veremos como podemos actualizar un datagridview y que este siempre actualizado con la informacion que vamos ingresando.

Para empezar agregaremos un nuevo item este sera un Windows Form como se muestra en la imagen.

Add Form2

Ahora agregaremos los siguiente:

un DataGridview y un boton el cual llevara como nombre btnActualizar, una vez que termines el diseño de tu formulario a tu gusto  tendra una forma parecida a la siguiente imagen.

Diseño de Formulario

Aqui viene el codigo lo primero sera importar el namespace al principio del codigo que seria:

using.System.Data.SqlClient

Una vez que hemos importado el namespace declararemos dos variables privadas dentro de la clase form las cuales seran:

private BindingSource bindingsource1=new BindingSource();

Private SqlDataAdapter dataAdapter=new SqlDataAdapter();

La primer linea nos servira como enlace de los datos de la tabla con el datagridview

La segunda linea nos permitira poder unir nuestra consulta y la conexion.

Al final tendremos algo asi.

Variables Privadas

Posteriormente vamos a crear la funcion llamada actualizar como en la imagen que se presenta.

Funcion Actualizar

Vamos a explicar esta funcion.

actualizar(string consulta) esto permite que pasemos una cadena para que nos devuelva un resultado.

Aqui definimos la ruta de nuestra base de datos.

String datasource = @”Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Arturo\Documents\Visual Studio 2008\Projects\ventas\ventas\dbempresa.mdf;Integrated Security=True;User Instance=True”;

Aqui ya enlazamos la consulta con la BD

dataAdapter = new SqlDataAdapter(consulta, datasource);

Generamos un comando para asociarlo con nuestro dataAdapter y poder tener actualizada la informacion de nuestra BD

SqlCommandBuilder comando = new SqlCommandBuilder(dataAdapter);

Creamos una nueva tabla.

DataTable tabla = new DataTable();

Llenamos nuestro dataAdapter con los campos de nuestra tabla

dataAdapter.Fill(tabla);

Asignamos la fuente de datos de nuestro bindingsource

bindingsource1.DataSource = tabla;

Ahora vamos a asignarle a nuestro DataGridviewsu fuente de datos y llamar a la funcion actualizar con nuestro parametro tal como se muestra en la imagen esto lo debemos realizar en el form load.

Llenar GridView

En el evento Clic de nuestro boton btnActualizar ira la siguiente linea:

actualizar(dataAdapter.SelectCommand.CommandText);

su funcion es crear una consulta de seleccion es decir pasa el mismo parametro que pusimos en el Form Load

Con esto terminamos, solo resta abrir el form2 desde el form1 con ello agregaremos un nuevo boton en el form1 y pondremos:

Form2 form2=new Form2;

form2.show();

SqlCommandBuilder comando = new SqlCommandBuilder(dataAdapter);

11 responses to this post.

  1. Posted by D-dwight on octubre 30, 2009 at 6:08 am

    Arturo…oyeme!!! de verdad que gran ayuda colega…este codigo es con algo que he estado batallando desde hace tiempo….se te agradece el gesto de compartir tu experiencia con los que estamos aprendiendo…..
    te mando saludos
    att.
    d-dwight

    Responder

  2. Posted by gonzalo on enero 28, 2010 at 12:32 am

    bien practico tu codigo, bien ahi graxias

    Responder

  3. Posted by jUAN S on marzo 4, 2010 at 3:44 am

    hOLA DISCULPA, SEGUI TODOS LOS PASOS, PERO CUANDO DOY CLIC EN EL BOTON ACTUALIZAR QUITA EL REGISTRO QUE AGREGUE Y NO ACTUALIZA, LA DIFERENCIAS ES QUE EN MI DATAGRIDVIEW TENGO BOTONES DEL LADO DERECHO QUE POSTERIORMENTE LOS QUIERO PARA ELIMINAR EL REGISTRO CORRESPONDIENTE, COMO LE PUEDO HACER EN ESE CASO.

    SALUDOS

    Responder

  4. Posted by Oscar on abril 3, 2010 at 6:14 am

    Saludos!, primero que nada, pues son muy utiles tus tutoriales, lleve a cabo este programa pero tengo un problema en tiempo de ejecucion me manda un error a esta linea: private void btnActualizar_Click(object sender, EventArgs e)
    {
    actualizar(dataAdapter.SelectCommand.CommandText);
    }

    Error: NullReferenceException was unhandled
    Referencia a objeto no establecida como instancia de un objeto.

    y pues estuve ya moviendole y nomas no encontre solucion, te agradeceria si me puedes dar una solucion Gracias! mi correo es os_k@hotmail.com

    Responder

  5. Posted by Manuel on mayo 11, 2010 at 9:32 am

    Hola, fijate que estoy llevando a cabo un proyecto y el sitio me ha sido de bastante ayuda, ahorita estaba intentando correr el codigo y me da el mismo problema que le dio a Oscar.

    private void btnActualizar_Click(object sender, EventArgs e)
    {
    actualizar(dataAdapter.SelectCommand.CommandText);
    }

    Error: NullReferenceException was unhandled
    Referencia a objeto no establecida como instancia de un objeto.

    estuve viendo si podia resolverlo pero no me dio la cabeza, si pudieras corregirme donde tengo el error o que hace falta para que en el dataview se vean los datos mi correo es jjpalacios_sanchez@hotmail.com
    De Antemano Gracias!

    Responder

  6. Posted by YESENIA on abril 15, 2011 at 6:25 am

    Excelente muchisimas gracias no sabes lo q esto me ayudo segui todo al pie de la letra y me funciono perfecto

    Responder

  7. E implementado el codigo paso a paso del ejemplo pero no funciona
    si me puedes enviar el codigo en mi correo funcionando

    Responder

  8. urgenta el codigo que publicaste no funciona ya lo probe y no actualiza los registros de la bd, por fabor si el codigo modificado u otro que funcione , te agradeseria si me lo envias a mi correo bfuentes.td@gmail.com.

    gracias

    Responder

  9. Posted by Daniel on mayo 4, 2011 at 3:45 pm

    Tengo todo exactamente igual.. solo que yo estoy trabajando con bd en mysql y uso : “using MySql.Data.MySqlClient;” me conecto a la base de datos bien, puedo grabar ,eliminar registros en la bd…
    lo unico q necesito es poder guardar los cambios que se realizan en el datagridview

    mi duda es si mi Datasource seria asi:

    “String datasource = @”Server=localhost;Database=pitas;Uid=root;Pwd=123;Port=3306″;”

    o si este codigo no funciona con mysql… cualquier ayuda se agradece😀

    PD: soy nuevo en c#

    Responder

  10. Posted by Byron on junio 27, 2011 at 3:53 pm

    Gracias ingeniero atomico

    Responder

  11. Posted by Milton Valencia on octubre 18, 2011 at 2:33 pm

    oye amigo muchisimas gracias, deverdad se agradece tu gesto tan generoso al compartir este codigo con nosotros. De verdad lo necesitaba ya que recien soy un iniciado en el Visual studio c#. ¡Gracias!.

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: