none
No coinciden Los tipos de Datos RRS feed

  • Pregunta

  • No se porque esta simple update a mi base de datos en access sale este error....

     Public Shared Function modificarItem(ByVal instance As eItem) As Boolean
            Dim conn As New OleDbConnection(ConfigurationManager.ConnectionStrings("default").ToString())

            Try
                Using conn
                    conn.Open()


                    Dim sql As String = "UPDATE T_ITEM SET  ITEM_NOMBRE  = '" & instance.ITEM_NOMBRE & "', ITEM_DESCRIPCION = '" & instance.ITEM_DESCRIPCION & "' WHERE ITEM_ID = '" & instance.ITEM_ID & "' "


                    Dim cmd As OleDbCommand = New OleDbCommand(sql, conn)

                    cmd.ExecuteNonQuery()

                    conn.Close()
                End Using


                Return True
            Catch ex As Exception

                Throw New Exception(ex.Message)
                Return False
            Finally
                conn.Dispose()
            End Try


        End Function

            
    martes, 14 de julio de 2015 18:46

Respuestas

  • WHERE ITEM_ID = '" & instance.ITEM_ID & "' "

    creo que es porque estas poniendo el Id entre comillas... suponiendo que tienes un ID numerico... no debería ir entre las comillas simples... intenta quitando las comillas simples del ID y nos cuentas...

     Dim sql As String = "UPDATE T_ITEM SET  ITEM_NOMBRE  = '" & instance.ITEM_NOMBRE & "', ITEM_DESCRIPCION = '" & instance.ITEM_DESCRIPCION & "' WHERE ITEM_ID =" & instance.ITEM_ID"


    Saludos,
    Lucas Petruzzella

    martes, 14 de julio de 2015 20:56

Todas las respuestas

  • ¿De qué tipo de datos son los campos de la tabla?

    En cualquier caso sería recomendable que usaras parámetros:

        Public Shared Function modificarItem(ByVal instance As eItem) As Boolean
            Dim conn As New OleDbConnection(ConfigurationManager.ConnectionStrings("default").ToString())
    
            Try
                Using conn
                    conn.Open()
                    Dim sql As String = "UPDATE T_ITEM SET  ITEM_NOMBRE=?, ITEM_DESCRIPCION=? WHERE ITEM_ID=?"
    
                    Dim cmd As OleDbCommand = New OleDbCommand(sql, conn)
                    cmd.Parameters.AddWithValue("item_nombre", instance.ITEM_NOMBRE)
                    cmd.Parameters.AddWithValue("item_descripcion", instance.ITEM_DESCRIPCION)
                    cmd.Parameters.AddWithValue("item_id", instance.ITEM_ID)
    
                    cmd.ExecuteNonQuery()
    
                    conn.Close()
                End Using
    
    
                Return True
            Catch ex As Exception
    
                Throw New Exception(ex.Message)
                Return False
            Finally
                conn.Dispose()
            End Try
        End Function
    


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    • Propuesto como respuesta Sergio Parra martes, 14 de julio de 2015 21:36
    martes, 14 de julio de 2015 19:01
  • Podrias porporcionar los tipos de datos que tienes asignados a tu tabla "T_ITEM"  y tambien el codigo de tu clase "instance", debe ser que hace un update con una variable de distinto  tipo a la columna de destino.

    Si mi respuesta fue útil ayudame marcándola como correcta.

    martes, 14 de julio de 2015 19:06
  • Hola Mafiloz

    Pero ¿cuál es el error?

    martes, 14 de julio de 2015 19:22
  • AMMM..  o son dos cosas o el imtem id te vota error porque le colocastes al comilla sola (') o aqui falta mas codigo que no has colocado y es ahi donde estan los errores, considerando que tienes un bloque contenedor de errores try catch el cual tal vez venga de tu variable instance.

    martes, 14 de julio de 2015 20:26
  • WHERE ITEM_ID = '" & instance.ITEM_ID & "' "

    creo que es porque estas poniendo el Id entre comillas... suponiendo que tienes un ID numerico... no debería ir entre las comillas simples... intenta quitando las comillas simples del ID y nos cuentas...

     Dim sql As String = "UPDATE T_ITEM SET  ITEM_NOMBRE  = '" & instance.ITEM_NOMBRE & "', ITEM_DESCRIPCION = '" & instance.ITEM_DESCRIPCION & "' WHERE ITEM_ID =" & instance.ITEM_ID"


    Saludos,
    Lucas Petruzzella

    martes, 14 de julio de 2015 20:56
  • De todas formas con todo lo que te han comentado, esta linea

    Throw New Exception(ex.Message)

    lo que haces es crear una nueva excepcion con el mensaje de la excepción original pero estás perdiendo TODO el StackTrace de la excepción original, cuya información es vital para saber qué ocurre. Yo cambiaria ese codigo simplemente por Throw


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    martes, 14 de julio de 2015 21:30
  • Gracias, eran las comillas, el id era numerico
    martes, 14 de julio de 2015 21:34