lunes, 22 de marzo de 2010

Agregar y remover filas de un Datagridview con C# 2005

En este parte desarrollaremos una aplicación donde podamos agregar y remover filas de un Datagridview utilizando Visual C# 2005, el video permite ver el diseño y la codificación del ejemplo, lo primero que hacemos es agegar un "Combobox", luego dos "Buttons" y por ultimo un "Datagridview" donde se agreagara y removera los datos agregados a través de los botones de agregar y remover, seleccionados del combobox, una vez agregados estos controles pasamos a cargar el combobox con una lista de datos, estos datos serán cargados de la base de datos "Northwind" de la tabla "Categories", el campo seleccionado sera "CategoryName", una vez cargados los datos dentro del "ComboBox", pasamos a codificar el botón "Agregar" y "Remover", a continuación presentamos el siguiente video con toda la solución desarrollada.








PD:
  • En el evento "Load" del formulario falto cerrar el "DataReader" (Dr.Close()) y el "SqlConecction" (Cn.Close()).
  • Para que no se elimine la ultima fila en blanco del "dgDatos" que queda al remover todas las agregadas (Categorías) por favor realizar la siguiente codificación dentro del evento "Click" del botón "Remover" :


    int Todo = dgDatos.RowCount; //cuenta todas las filas del dgDatos
    if (Todo >= 2) //las filas del dgDatos tienen que ser mayor o igual a 2 para poder remover
    {
    int Fil = dgDatos.CurrentRow.Index;
    dgDatos.Rows.RemoveAt(Fil);
    }
    else //en caso contrario no remueve la fila
    {
    MessageBox.Show("No Existe Ninguna Categoría!",
    "Aviso", MessageBoxButtons.OK,
    MessageBoxIcon.Warning);
    }

19 comentarios:

  1. exelente me fue de gran ayuda... te lo agradecere bastante

    ResponderEliminar
  2. no tendras como configurar sqlserver 2000 de manera remota?

    ResponderEliminar
  3. Por ahora no cuento con dicha configuración.

    ResponderEliminar
  4. hola fue de gran ayuda tu video solo q tengo una duda
    al quitar todas las filas y si le vuelvo apretar el boton de remover marca un error como puedo solucionar eso. de antemano gracias

    ResponderEliminar
  5. Leer la ultima parte del PD de esta Entrada.

    ResponderEliminar
    Respuestas
    1. hola q tal eduardo, me gustaria q me ayudaras a hacer esa aplicacion pero ahora con un boton de guardar, para guardar todos los datos agregados del dgdatos en una base de datos...espero de tu respuesta graxias

      Eliminar
  6. gracias por el video que pusiste me sirvio para resolaver un problema de examen en itson guaymas sonora

    ResponderEliminar
  7. GRACIAS!!!!!!!! te pasaste no sabia como hacer el remover!! te pasaste!! ahora tengo una consultita no se si hallas implementado un codigo para sumar una fila o columna de un datagridview? sigue asi man!! =D

    ResponderEliminar
  8. como se haría para guardarlo a la BD, fila por fila?

    ResponderEliminar
  9. Int32 i;
    for (i = 0; i< dgv_cargar.Rows.Count-1; i++)
    {
    String sql;
    SqlCommand comando;
    conexion c = new conexion();
    SqlConnection cn = new SqlConnection(c.conectar());
    sql = "insert into tabla(dato1,dato2)values('"+dgv_cargar.Rows[i].Cells[0].Value +"','" + dgv_cargar.Rows[i].Cells[1].Value + "')";
    cn.Open();
    comando = new SqlCommand(sql, cn);
    comando.ExecuteNonQuery();

    }
    MessageBox.Show("SE REGISTRO EXITOSO");
    espero funciona para guardar a BD

    ResponderEliminar
  10. Gracias me fue de gran ayuda tu aporte ^.^

    ResponderEliminar
  11. Con esto el unico que me borra es el primero, no borra el seleccionado, solo el primero de la lista... Al menos a mi me pasa eso...

    ResponderEliminar
  12. esta muy bueno me gustaria saber como enviar 2 o 3 o 4 textbox a cada columna del datagrid ya lo tengo con un textbox pero con mas de uno no se como de ante mano gracias por ese ejemplo

    ResponderEliminar
  13. Exelente aporte,,
    Pero me gustaria hacer lo mismo pero en un WebForms... si me pudieras ayudar te agradeceria

    ResponderEliminar
  14. quisier q me ayudas con el evento leave, as de cuenta q cuando pongo el dato del codigo y al momento de pasarme al siguiente texbox (cantidad a salir) me salgan los datos generales de ese ariculo automaticamente. te lo agradeceria mucho...

    ResponderEliminar
  15. hola q tal eduardo, me gustaria q me ayudaras a hacer esa aplicacion pero ahora con un boton de guardar, para guardar todos los datos agregados del dgdatos en una base de datos...espero de tu respuesta graxias

    ResponderEliminar
  16. Eduardo puedes hacer ese ejemplo conectada a una base de datos de sql
    y que elimine registros que sean seleccionados por el usuario

    ResponderEliminar
  17. Lo lamento, pero el código proporcionado es incorrecto!!..
    Pregunta, q pasaría si tengo un datagridview con dos registros(filas), y quisiera eliminar el primero??..FAIl...full error!!

    He probado varias soluciones, ya que los bucles for no ayudan para nada; sin embargo, la perfecta es la siguiente:

    Dim i As Integer = 0

    'elimina filas seleccionadas en datagrid secundario
    Do While Not i = dgvDel.Rows.Count
    If (Convert.ToBoolean(dgvDel.Item(0, i).FormattedValue = True)) _
    Then dgvDel.Rows.RemoveAt(i) : i = 0 Else i += 1

    Loop
    dgvDel.Update()

    ..mis disculpas, el código está en VB.Net.

    Saludos cordiales,
    Atte,
    Fabián Vega B.
    fvega2401@gmail.com

    ResponderEliminar