none
error al guardar en el datagrid RRS feed

  • Pregunta

  • me sale este error al modificar pero no lo interpreto bien si alguien tiene experiencia que alguna vez el aya sucedido y lo corrijio  
    • Editado Figueroa97 miércoles, 14 de septiembre de 2016 0:56
    miércoles, 14 de septiembre de 2016 0:55

Respuestas

  • hola

    estas seguro que tienes 7 columnas en el grid ?

    porque no lo accedes por nombre como ser

    var row = dataGridView1.Rows[fila];
    
    //otras columnas
    
    int salario = Convert.ToInt32(row.Cells["nombrecolumna"].Value);


    de esta forma no te confundiras cuando accedes a una columna ya que lo realizas por el name

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 14 de septiembre de 2016 1:26

Todas las respuestas

  • Figueroa97,

    ¿Leíste la descripción de la excepción?, es bastante clara su interpretación. La causa más común para que se produzca la excepción 'ArgumentOutOfRangeException' es cuando se intenta recuperar un elemento de una colección a través de un número de índice y el valor proporcionado no es válido porque excede a la cuenta de elementos o porque la colección no tiene elementos.

    ¿Podrías mostrar la línea de código donde se produce la excepción?


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 14 de septiembre de 2016 1:13
  • Hola Figueroa97

    Al parecer esta haciendo referencia a un elemento que es mayor al número de elementos de la colección.

    Debería mostrar el código para instrucciones más precisas.

    Saludos,


    Miguel Torres



    miércoles, 14 de septiembre de 2016 1:14
  • miércoles, 14 de septiembre de 2016 1:23
  • hola

    estas seguro que tienes 7 columnas en el grid ?

    porque no lo accedes por nombre como ser

    var row = dataGridView1.Rows[fila];
    
    //otras columnas
    
    int salario = Convert.ToInt32(row.Cells["nombrecolumna"].Value);


    de esta forma no te confundiras cuando accedes a una columna ya que lo realizas por el name

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 14 de septiembre de 2016 1:26
  • Figueroa97,

    Por lo que puedo deducir es que no existe el elemento de índice 6 en la colección de columnas, ¿tienes certeza de que el objeto dataGridView1 tiene 7 columnas?

    miércoles, 14 de septiembre de 2016 1:28
  • Hola Figueroa97

    Recuerde que las columnas de DataGridView se numeran en base cero (0), lo que significa que la primera columna se referencia como la número cero (0) y la segunda (1),  y así en lo sucesivo. 

    Saludos,


    Miguel Torres


    miércoles, 14 de septiembre de 2016 1:33
  • Disculpa Amigo Es que Estamos Trabajando  con el Amigo Esneider97 En

    Y Si Tengo las columnas enumeradas en 0 a 6 pero me sigue el mismo error


    miércoles, 14 de septiembre de 2016 1:41
  • Jhorman Manjarres,

    Pues el mensaje de excepción aparentemente no indica eso:

    Si en vez de 6 colocan la cuenta de columnas menos -1, ¿qué valor obtienen?

    dataGridView1[dataGridView1.Columns.Count - 1, fila].Valu...


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 14 de septiembre de 2016 1:51
  • Aca le coloco el Update de la Clase Para el envio de datos 

    //--------------------------------------------MODIFICAR EMPLEADO----------------------------------------------------------
            public string modificar_empleado(int ID_EMPLEADOS, string NOMBRE, string APELLIDO, string DIRECCION, int TELEFONO, int CEDULA, int SALARIO)
            {
                string sql = "UPDATE EMPLEADO SET NOMBRE='" + NOMBRE + "', APELLIDO='" + APELLIDO + "', DIRECCION='" + DIRECCION + "', TELEFONO='" + TELEFONO + "', CEDULA='" + CEDULA + "', SALARIO='" + SALARIO + "'  WHERE  ID_EMPLEADOS = " + ID_EMPLEADOS + "";
                string tb_usuario = conex.CRUD(sql);
                return tb_usuario;
            }

    Y Aca Le Coloco El De modificar en el Data Griv 

    private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    Cs_Empleado MODI = new Cs_Empleado();
    
    
                    int fila = this.dataGridView1.CurrentCell.RowIndex;
    
                    int id = Convert.ToInt32(dataGridView1[0, fila].Value.ToString());
                    string nombre = dataGridView1[1, fila].Value.ToString();
                    string apellido = dataGridView1[2, fila].Value.ToString();
                    string direccion = dataGridView1[3, fila].Value.ToString();
                    int telefono = Convert.ToInt32(dataGridView1[4, fila].Value.ToString());
                    int cedula = Convert.ToInt32(dataGridView1[5, fila].Value.ToString());
                    int salario = Convert.ToInt32(dataGridView1[6, fila].Value.ToString());
                    
    
                    string rta = MODI.modificar_empleado(id, nombre, apellido, direccion, telefono, cedula, salario);
                    if (rta == "SI")
                    {
                        MessageBox.Show("Se ha Guardado");
                    }
                    else
                    {
                        MessageBox.Show("No se Modifico", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
    Ya Que no me envia Datos que he moficado en el Data Griv No me los envia a la base de satos pero si me muestra el mensaje que coloque para guardar y si lo muestra pero voy a rectificar en la base de Datos Y No Me Aparecen los Datos Modificados 


    miércoles, 14 de septiembre de 2016 2:15