C sharp - Recorrer Todo el grid y enviar a Sql

   
Vista:

Recorrer Todo el grid y enviar a Sql

Publicado por jcarlos (4 intervenciones) el 14/05/2014 03:01:24
Estoy tratando que proceso recorra todo el grin y me envie cada fila a guardar a sql pero cuando llego a la ultima linea sale el error de fuera de rango como lo puedo solucionar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public void GuardarDetalle()
{
    int n;
    if (Dt.Rows.Count == 0)
    {
    }
    else
    {
        for (n = 0; n < Dt.Rows.Count; n++)
                Mo = Convert.ToString(Dt.Rows[n].Cells["Monto"].Value);
                Nu = Convert.ToString(Dt.Rows[n].Cells["Numero"].Value);
                Dato.gTicket = lblClave.Text;
                Dato.gMonto = Convert.ToDecimal(Mo.ToString());
                Dato.gNumero = Convert.ToDecimal(Nu.ToString());
                Dato.gTotal = Convert.ToDecimal(lblTotal.Text);
                int resultado = MD.Insertar(Dato);
        try
        {
 
            if (resultado > 0)
            {
                MessageBox.Show("Grupo Guardado Correctamente", "Guardando Grupo", MessageBoxButtons.OK, MessageBoxIcon.Information);
 
            }
        }
        catch
        {
            MessageBox.Show("Grupo NO Guardados", "Guardando Grupo", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Recorrer Todo el grid y enviar a Sql

Publicado por jcarlos (4 intervenciones) el 14/05/2014 06:39:16
solo era un error de logica

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void GuardarDetalle()
{
 
    try
    {
        foreach (DataGridViewRow row in Dt.Rows)
            if (!string.IsNullOrEmpty(row.Cells["Monto"].FormattedValue.ToString()))
            {
                Dato.gTicket = lblClave.Text;
                Dato.gMonto = Convert.ToInt32(row.Cells["Monto"].Value.ToString());
                Dato.gNumero = Convert.ToInt32(row.Cells["Numero"].Value.ToString());
                Dato.gTotal = Convert.ToInt32(lblTotal.Text);
                MD.Insertar(Dato);
            }
    }
    catch
    {
        MessageBox.Show("NO SE PUDO REGISTRAR VENTA INTENTE DE NUEVO");
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Recorrer Todo el grid y enviar a Sql

Publicado por xve (30 intervenciones) el 14/05/2014 10:44:33
Gracias por compartirlo jcarlos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recorrer Todo el grid y enviar a Sql

Publicado por Tlatoani Tlatoani.programador@gmail.com (1 intervención) el 14/05/2014 06:45:57
jcarlos:

Cuándo dices que el error ocurre al llegar a la última línea... te refieres a la última fila del Grid?
Porque al parecer no estás recorriendo todo el Grid.
Me parece que de las líneas de código de tu ciclo FOR solo se ejecuta la primera, ya que a la segunda línea del ciclo donde calculas NU nunca llegas porque no estas usando las llaves {} correspondientes para ejecutar el grupo de instrucciones completo en el ciclo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar