none
CONTINUA ERROR AL GUARDAR DATAGRIDVIEW CON EL CAMPO FECHA RRS feed

  • Pregunta

    • HOLA BUENAS NOCHES
      sigo teniendo problemas para guardar mis datos del datagridview en la tabla listacuotasprestamos
      ESTE ES EL CODIGO QUE TENGO:
       If cuotasDataGridView.Rows.Count = 0 Then
                  MessageBox.Show("No hay informacion para guardar")
                  Return
              End If
              Using conn As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\FONSOCAM.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
                  conn.Open()
                
        Dim sql As String = "INSERT INTO  listacuotasprestamo(nrodocumento, cedula, " & _
                                      "cuotaNo, Capital, interes, " & _
                                      "fechavencimiento, cuotamensual) " & _
                                      "VALUES (@nrodocumento, @cedula, @cuotaNo, " & _
                                      "@Capital, @interes, @fechavencimiento, @cuotamensual)"
                
        Dim cmd As New SqlCommand(sql, conn)
                  For Each row As DataGridViewRow In cuotasDataGridView.Rows
                      cmd.Parameters.Clear()
                      cmd.Parameters.AddWithValue("@nrodocumento", CStr(row.Cells(0).Value))
                      cmd.Parameters.AddWithValue("@cedula", CStr(row.Cells(1).Value))
                      cmd.Parameters.AddWithValue("@cuotaNo", CStr(row.Cells(2).Value))
                      cmd.Parameters.AddWithValue("@Capital", CStr(row.Cells(3).Value))
                      cmd.Parameters.AddWithValue("@interes", CStr(row.Cells(4).Value))
                      Dim fecha As Nullable(Of Date) = Nothing
                      DateTime.TryParse(row.Cells(5).Value, fecha)
                      If fecha.HasValue Then
                          cmd.Parameters.AddWithValue("@fechavencimiento", fecha.Value)
                      Else
                          cmd.Parameters.AddWithValue("@fechavencimiento", DBNull.Value)
                      End If

                      cmd.Parameters.AddWithValue("@cuotamensual", CStr(row.Cells(6).Value))
                      cmd.ExecuteNonQuery()
                  Next
                  MessageBox.Show("Info. guardada correctamente")
              End Using
          End Sub
      EL ERROR PASADO FUE ERROR AL CONVERTIR CADENA A DATETIME , AHORA MODIFIQUE CODIGO Y 
       ME ESTA MOSTRANDO ESTE ERROR EN ESTA LINEA : DateTime.TryParse(row.Cells(5).Value, fecha)
      EL OBJETO QUE ACEPTA VALORES NULL DEBE TENER UN VALOR.
      VUELVO Y REPITO NO ENTIENDO A QUE SE REFIERE SI EL CAMPO FECHA TIENE UN VALOR NULL, Y  SE HA PROGRAMADO EN CASO DE QUE LO TENGA O  NO TIENE FECHA. SIN EMBARGO COMO SON FECHAS CALCULADAS PUES SIEMPRE VA A TENER UN VALOR...
      ACLARO QUE YA PUSE EN EL CAMPO FECHA VENCIMIENTO DE LA TABLA PERMITIR VALORES NULOS..
      PERO NO SE QUE ES LO QUE PASA SI EN EL DATAGRID ME ARROJA TODAS LAS FECHAS SEGUN EL NUMERO DE CUOTAS, POR ESO NO HAY VALORES NULOS ALLI..
      MIRE LA CONFIGURACION DE LA FECHA DEL SISTEMA POR SI ALGO, Y ESTA EN ESPAÑOL "DD,MM,AAAA", NO SE SI ESTO SERA INCONVENIENTE POER EL ERROR Q ME VOTABA DE DESBORDAMIENTO...
      POR FAVOR AYUDENME  PARA PODER SOLUCIONAR ESTE PROBLEMILLA QUE NO ME HA DEJADO SEGUIR CON MI PROYECTO!!GRACIAS-
    sábado, 21 de mayo de 2011 5:20

Respuestas

  • hola

    prueba algo como esto

    Dim fecha As Nullable(Of Date) = Nothing

    Dim fechaTemp As DateTime
    If DateTime.TryParse(row.Cells(5).Value, fechaTemp) Then
        fecha = fechaTemp
    End If

    If fecha.HasValue Then
        cmd.Parameters.AddWithValue("@fechavencimiento", fecha.Value)
    Else
        cmd.Parameters.AddWithValue("@fechavencimiento", DBNull.Value)
    End If

     

    el tema ma parece es que el TryParse no asigna directo a un nulable

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Nicoloco martes, 7 de junio de 2011 14:43
    • Marcado como respuesta cristi2281 domingo, 14 de agosto de 2011 4:30
    sábado, 21 de mayo de 2011 15:49

Todas las respuestas

  • hola

    prueba algo como esto

    Dim fecha As Nullable(Of Date) = Nothing

    Dim fechaTemp As DateTime
    If DateTime.TryParse(row.Cells(5).Value, fechaTemp) Then
        fecha = fechaTemp
    End If

    If fecha.HasValue Then
        cmd.Parameters.AddWithValue("@fechavencimiento", fecha.Value)
    Else
        cmd.Parameters.AddWithValue("@fechavencimiento", DBNull.Value)
    End If

     

    el tema ma parece es que el TryParse no asigna directo a un nulable

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Nicoloco martes, 7 de junio de 2011 14:43
    • Marcado como respuesta cristi2281 domingo, 14 de agosto de 2011 4:30
    sábado, 21 de mayo de 2011 15:49
  • Hola Cristi, has conseguido resolver tu problema?? cuentanos, como te fue??

    Saludos.


    Nicolás Herrera
    Bogotá - Colombia
    BLOG - Leader Group BogotaDotNet
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes
    martes, 7 de junio de 2011 14:43
  • OK. EFECTIVAMENTE GRACIAS POR SU COLABORACION..AHORA ME DISPONGO A CONTINUAR CON MI PROGRAMA, GRACIAS POR SUS APORTES Y BUENO SEGUIRE CONTANDO CON LA  GRAN AYUDA DE ESTE FORO..

    GRACIAS

     

    domingo, 14 de agosto de 2011 4:32