locked
probleme avec INSERT TO RRS feed

  • Discussion générale

  • je suis en train de faire une requete par le biais de commandtext.

    lorsque je l'execute das le code j'ai un message qui me dis que le nombre de colonne daoit etre le meme dans la partie VALUE de la requete que celui de la partie INSERT

    j'ai tourne ma requete dans tout les sens et le nombre de champ est identique.

    j'ai pensais que le fait que deux requetes soit imbriques pouvait pose probleme mais les nom de commande ne sont pas identique et j'ouvre deux connexions simultanement , j'ai donc une legere difficulte a savoir pourquoi SQL SERVER me renvoie se probleme.

    j'ai verifier en mettant des valeur en dur dans la requete a la place de mes variable et l'erreur mais apparu comme une evidence

    j'utilise des chiffres decimaux pour recupere des heures representees en 100eme d'heures ,j'ai tente de changer mes parametres regionaux mais ca ne change rien

    j'ai chercher comment permet l'insertion de nombre a virgule dans ma requete et je suis tomber sur les requetes parametrees mais cela ne marche pas plus

    voici mon code

    Using

     

    MyConnectionSup As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Asmolding.mdf;Integrated Security=True;User Instance=False"

    )

     

    Dim MyCommandSup As SqlCommand

    = MyConnectionSup.CreateCommand()

    MyCommandSup.Parameters.AddWithValue(

    "NbHeures", "@NbHeures"

    )

    MyCommandSup.Parameters(

    "NbHeures"

    ).Value = MyReader(0)

    MyCommandSup.CommandText =

    "INSERT INTO GestionCumulHoraire "

    & _

     

    "(ValidationDate, NumeroSmn, CodeUser, TypeTrv, NbHeures) "

    & _

     

    "VALUES (" & Mydate & "," & GrpSemaine & ",'" & GrpCodeUser & "','" & GrpTypeTrv &

    "',?)"

    MyConnectionSup.Open()

    MyCommandSup.ExecuteNonQuery()

     

    End Using

    le programme me retourne une erreur suivante

    L'exception System.Data.SqlClient.SqlException n'a pas été gérée
      Class=15
      ErrorCode=-2146232060
      LineNumber=1
      Message=Syntaxe incorrecte vers '?'.
      Number=102
      Procedure=""
      Server=.\SQLEXPRESS
      Source=.Net SqlClient Data Provider
      State=1
      StackTrace:
           à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
           à System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
           à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
           à System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
           à System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
           à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
           à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
           à System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
           à System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
           à WindowsApplication1.Gestionnaire.Ajouter_Click(Object sender, EventArgs e)
           à System.Windows.Forms.Control.OnClick(EventArgs e)
           à System.Windows.Forms.Button.OnClick(EventArgs e)
           à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
           à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
           à System.Windows.Forms.Control.WndProc(Message& m)
           à System.Windows.Forms.ButtonBase.WndProc(Message& m)
           à System.Windows.Forms.Button.WndProc(Message& m)
           à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
           à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
           à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
           à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
           à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
           à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
           à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
           à WindowsApplication1.My.MyApplication.Main(String[] Args)
           à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           à System.Threading.ThreadHelper.ThreadStart()
      InnerException:

    voila je doit bien avouer que je m'arrache les cheveux sur un simple nombre a virgule surtourt que ce probleme ne se rencontre pas si l'on fait appel a des requetes faite dans le concepteur de dataset.

    Merci d'avance pour vos reponses

    cordialement

    Xavier

     
    Xavier
    mardi 9 août 2011 11:58

Toutes les réponses

  • J'ai trouver la solution en remplacant le ? par @NbHeures cela fonctionne correctement

    simple erreur d'inattention

     


    Xavier
    mardi 9 août 2011 12:52