none
ayuda al insertar registros en una base de datos SqlServerCe

    Question

  • hola como están quiero insertar registros en una base de datos .sdf pero al definir los parámetros me muestra error y no se como hacerle por que cambia el tipo de asignación con respecto a las demás bd les pongo mi código aquí para que lo vean y me digan donde esta mi error

     Try
          Dim connstring4 As String = "Data Source=|DataDirectory|\bd\negocio.sdf"
          Using conn4 As New SqlCeConnection(connstring4)
            Dim cmd4 As New SqlCeCommand
    
            Dim ACTIVAR As String = "Si"
            cmd4.CommandText = "INSERT INTO [Reg_orden] ([Id], [Activa], [Mesa]) VALUES (@id, @activa, @mesa)"
    
            cmd4.Parameters.Add("@id")
            cmd4.Parameters.Add("@activa")
            cmd4.Parameters.Add("@mesa")
    
            cmd4.Parameters("@id").Value = ord
            cmd4.Parameters("@activa").Value = "Si"
            cmd4.Parameters("@mesa").Value = mes_t.ToString
    
            cmd4.Connection = conn4
    
            conn4.Open()
            cmd4.ExecuteNonQuery()
            conn4.Close()
          End Using
        Catch ex As Exception
          MessageBox.Show(ex.Message)
        End Try
    

    y el error que me muestra es el siguiente:

    SQLCE PARAMETER COLLECTION SOLO ACEPTA OBJETOS DE TIPO SQLCEPARAMETER NO NULL, NO OBJETOS STRING

    Monday, April 11, 2011 2:45 AM

Answers

  • hola

    podrias tambien usar algo como esto


    Try

      Dim connstring4 As String = "Data Source=|DataDirectory|\bd\negocio.sdf"
      Using conn4 As New SqlCeConnection(connstring4)
        conn4.Open()
       
        Dim sql As String = "INSERT INTO [Reg_orden] ([Id], [Activa], [Mesa]) VALUES (@id, @activa, @mesa)"
        Dim cmd4 As New SqlCeCommand(sql, conn4)

        cmd4.Parameters.AddWithValue("@id", ord)
        cmd4.Parameters.AddWithValue("@activa", "Si")
        cmd4.Parameters.AddWithValue("@mesa", mes_t.ToString)

        cmd4.ExecuteNonQuery()
       
      End Using
     
    Catch ex As Exception
      MessageBox.Show(ex.Message)
    End Try

     

    como veras se reducen algunas lineas, como usas el Using no hace falta que invoques al Close()

     

    algo que puedo notar es que no has mencionado de dodne se asignan ord y mes_t

    pero valdia que estos no esten de calrado como tipo nulables

    ademas si son controles de tipo TextBox, has olvidado suar la propiedad Text de los mismos

    pero creo que el problema viene de estas dos variables

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by divad_82 Monday, April 11, 2011 3:34 AM
    Monday, April 11, 2011 3:07 AM

All replies

  • hola

    podrias tambien usar algo como esto


    Try

      Dim connstring4 As String = "Data Source=|DataDirectory|\bd\negocio.sdf"
      Using conn4 As New SqlCeConnection(connstring4)
        conn4.Open()
       
        Dim sql As String = "INSERT INTO [Reg_orden] ([Id], [Activa], [Mesa]) VALUES (@id, @activa, @mesa)"
        Dim cmd4 As New SqlCeCommand(sql, conn4)

        cmd4.Parameters.AddWithValue("@id", ord)
        cmd4.Parameters.AddWithValue("@activa", "Si")
        cmd4.Parameters.AddWithValue("@mesa", mes_t.ToString)

        cmd4.ExecuteNonQuery()
       
      End Using
     
    Catch ex As Exception
      MessageBox.Show(ex.Message)
    End Try

     

    como veras se reducen algunas lineas, como usas el Using no hace falta que invoques al Close()

     

    algo que puedo notar es que no has mencionado de dodne se asignan ord y mes_t

    pero valdia que estos no esten de calrado como tipo nulables

    ademas si son controles de tipo TextBox, has olvidado suar la propiedad Text de los mismos

    pero creo que el problema viene de estas dos variables

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by divad_82 Monday, April 11, 2011 3:34 AM
    Monday, April 11, 2011 3:07 AM
  • muchas gracias leandro con tu codigo me lo agrego sin problemas
    Monday, April 11, 2011 3:34 AM