Foros del Web » Programación para mayores de 30 ;) » .NET »

Error en Datagridview

Estas en el tema de Error en Datagridview en el foro de .NET en Foros del Web. Hola a todos, Estoy atascada con un problema. Tengo una rejilla Datagridview en la que edito directamente las celdas, y en el evento rowleave controlo ...
  #1 (permalink)  
Antiguo 26/02/2008, 04:53
 
Fecha de Ingreso: febrero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Error en Datagridview

Hola a todos,

Estoy atascada con un problema. Tengo una rejilla Datagridview en la que edito directamente las celdas, y en el evento rowleave controlo que, si se ha añadido una nueva fila, se inserte a través de un oledbcommand.

La cuestión es que cada vez que escribo en las columnas de tipo BigInt y sin finalizar la edición de la celda, salgo de ella, se pierde el valor que acabo de introducir.

No sé muy bien por qué ocurre esto, sólo sé que cuando utilizaba un OledbCommandBuilder automático para insertar nuevas filas no me pasaba. Os dejo el código por si tenéis alguna sugerencia.
Código:
        insCom.Parameters.Add("@numsemana", OleDbType.Integer)
        insCom.Parameters.Add("@anyo", OleDbType.Integer)
        insCom.Parameters.Add("@numlinea", OleDbType.BigInt)
        insCom.Parameters.Add("@dia", OleDbType.Char, 10)
        insCom.Parameters.Add("@destino", OleDbType.VarChar, 4)
        insCom.Parameters.Add("@codplato", OleDbType.VarChar, 10)
        insCom.Parameters.Add("@raciones", OleDbType.BigInt)
        insCom.Parameters.Add("@gramaje", OleDbType.Decimal, 13)
        insCom.Parameters.Add("@fechaprod", OleDbType.Date)
        insCom.Parameters.Add("@lote", OleDbType.Char, 9)
        insCom.Parameters.Add("@fechacad", OleDbType.Date)

Private Sub rejiLunes_RowLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles rejiLunes.RowLeave

       If userAddedRow = True Then
                    insCom.Parameters("@numsemana").Value = semana
                    insCom.Parameters("@anyo").Value = anyo
                    insCom.Parameters("@numlinea").Value = numLinea

                    insCom.Parameters("@dia").Value = "LUNES"
                    If CType(sender, DgvPlus)(4, CType(sender, DgvPlus).CurrentRow.Index) Is DBNull.Value = False Then
                        insCom.Parameters("@destino").Value = CType(sender, DgvPlus)(4, CType(sender, DgvPlus).CurrentRow.Index).Value
                    Else
                        insCom.Parameters("@destino").Value = ""
                    End If

                    If CType(sender, DgvPlus)(5, CType(sender, DgvPlus).CurrentRow.Index) Is DBNull.Value = False Then
                        insCom.Parameters("@codplato").Value = CType(sender, DgvPlus)(5, CType(sender, DgvPlus).CurrentRow.Index).Value
                    Else
                        insCom.Parameters("@codplato").Value = ""
                    End If

                    If CType(sender, DgvPlus)(6, CType(sender, DgvPlus).CurrentRow.Index) Is DBNull.Value = False Then
                        insCom.Parameters("@raciones").Value = CType(sender, DgvPlus)(6, CType(sender, DgvPlus).CurrentRow.Index).Value
                    Else
                        insCom.Parameters("@raciones").Value = 0
                    End If

                    If CType(sender, DgvPlus)(7, CType(sender, DgvPlus).CurrentRow.Index) Is DBNull.Value = False Then
                        insCom.Parameters("@gramaje").Value = CType(sender, DgvPlus)(7, CType(sender, DgvPlus).CurrentRow.Index).Value
                    Else
                        insCom.Parameters("@gramaje").Value = 0
                    End If

                    If CType(sender, DgvPlus)(8, CType(sender, DgvPlus).CurrentRow.Index) Is DBNull.Value = False Then
                        insCom.Parameters("@fechaprod").Value = CType(sender, DgvPlus)(8, CType(sender, DgvPlus).CurrentRow.Index).Value
                    Else
                        insCom.Parameters("@fechaprod").Value = DBNull.Value
                    End If

                    If CType(sender, DgvPlus)(9, CType(sender, DgvPlus).CurrentRow.Index) Is DBNull.Value = False Then
                        insCom.Parameters("@lote").Value = CType(sender, DgvPlus)(9, CType(sender, DgvPlus).CurrentRow.Index).Value
                    Else
                        insCom.Parameters("@lote").Value = ""
                    End If

                    If CType(sender, DgvPlus)(10, CType(sender, DgvPlus).CurrentRow.Index) Is DBNull.Value = False Then
                        insCom.Parameters("@fechacad").Value = CType(sender, DgvPlus)(10, CType(sender, DgvPlus).CurrentRow.Index).Value
                    Else
                        insCom.Parameters("@fechacad").Value = DBNull.Value
                    End If

                    Try
                        cnn.Open()
                        insCom.ExecuteNonQuery()
                        cnn.Close()
                        numLinea += 10
                    Catch ex As Exception
                        MessageBox.Show(ex.ToString)
                    End Try

                    userAddedRow = False

                    ds.Tables("LUNES").Clear()
                    cnn.Open()
                    daLun.Fill(ds, "LUNES")
                    cnn.Close()                                               
        End If
Gracias de antemano ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:56.