IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Erreur de syntaxe


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut Erreur de syntaxe
    Mon pb c'est que a chaque fois que j'essaye d'insérer des lignes modifiées dans une table il me met ce msg d'erreur "erreur de syntaxe (opérateur absent) dans l'expression"Contrat d'abonnement logiciels IBM',etc". J'ai l'impression qu'il n'accepte pas les champs avec des apostrophes. Comment faire pour corriger cela SVP?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Dim cnx As New OleDbConnection
            Dim command = New OleDbCommand("update Abonnement set Abonnement.Num_abonnement='" & Cbxnumab.Text & "'" & ", Abonnement.Lib_abonnement='" & Txtlibab.Text & "'" & ", Abonnement.Date_debut_ab='" & Dates.Value & "'" & ", Abonnement.Date_fin_ab='" & Datef.Value & "'" & ", Abonnement.Montant_ab='" & Txtmontantab.Text & "'" & ", Abonnement.Num_frs='" & Txtnumfrs.Text & "'" & ", Abonnement.Nom_frs='" & Cbxfrs.Text & "'" & "where Num_abonnement='" & Cbxnumab.Text & "'", cnx)
            Try
                cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Documents and Settings\Administrateur.STANDARD\Mes documents\Projet Budget\Budget\Budget\Marches.mdb"
                cnx.Open()
                command.connection = cnx
                command.executenonquery()
                MsgBox("L'abonnement a été modifié avec succès", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                If Not (cnx Is Nothing) Then
                    cnx.Close()
                End If
            End Try

  2. #2
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Txtlibab.Text.replace("'","\'")
    pour tout les champs textbox

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    A quel niveau je met ca?

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 60
    Par défaut
    A chaque endroit où tu utilise la valeur d'un champ text box

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Ca ne marche pas
    PS : le champs txtliab.text peut être modifié comme il peut ne pas être modifié.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Le champ txtlibab ne peut pas être modifié (c'est un champ Read Only).

  7. #7
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par HULK
    il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Txtlibab.Text.replace("'","\'")
    pour tout les champs textbox
    Ne marche pas j'avais deja testé avec l'anteslash...

    Il faut utiliser les doubles guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim exemple as String = "coucou ""cava "" oui et toi" 'le 'ca va' sera entre guillemets
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Je ne comprend pas. moi par exemple au niveau de ce champ j'ai "contrat d'abonnement logiciels IBM". ce que je veux c'est qu'il accepte l'apostrophe " ' " lors de l'insertion dans la table.

  9. #9
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par loverdev
    Je ne comprend pas. moi par exemple au niveau de ce champ j'ai "contrat d'abonnement logiciels IBM". ce que je veux c'est qu'il accepte l'apostrophe " ' " lors de l'insertion dans la table.
    Ah ok je pensais que c'etait des guillemets...

    Pour les guillemets simples et doubles on utilise ma méthode ci haut.

    Pour l'apostrophe je n'ai jamais essayé mais essaye avec la meme technique on ne sait jamais.

    Sinon tu peux remplacer ton apostrophe par un guillemet simple !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Txtlibab.Text.replace("'","'")
    Ensuite quand tu récupères les infos, tu fais l'opération inverses...

    Cdl
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    ça ne marche pas

  11. #11
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par loverdev
    ça ne marche pas
    Qu'est ce qui ne marche pas ??

    Remplace les apostrophes par des guillemets simples et ca marchera (deja testé chez moi )
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Désolé j'ai fait une erreur. plutôt j'ai des guillemets simple (par exemple " ' ") et il ne les accepte pas lors de l'insertion au niveau du Update.

  13. #13
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par loverdev
    Désolé j'ai fait une erreur. plutôt j'ai des guillemets simple (par exemple " ' ") et il ne les accepte pas lors de l'insertion au niveau du Update.
    Ok donc ta chaine doit etre sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Chaine as String = "ca va cool la ''vie est belle'' nest ce pas ?" 'vie est belle sera entre guillemets simples
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Je ne comprend pas. Au niveau de mon code qu'est ce que je dois ajouter ou modifier?

  15. #15
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par loverdev
    Je ne comprend pas. Au niveau de mon code qu'est ce que je dois ajouter ou modifier?
    Rien du tout c'est au niveau de ta textbox que tu dois entrer ce type de chaine. Je ne sais pas comment tu fais ton update mais tu n'as pas besoin de modifier ton code.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  16. #16
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Je ne met rien au niveau de ce champ. Ce champ est rempli automatiquement et je ne peux pas le modifier alors comment par textbox?

  17. #17
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par loverdev
    Je ne met rien au niveau de ce champ. Ce champ est rempli automatiquement et je ne peux pas le modifier alors comment par textbox?
    Bon je comprends rien pourquoi veux tu que ta BDD accepte les guillemets simples si tu n'entres rien manuellement ?

    J'ai loupé quelque chose, je vois pas où tu veux en venir et poste un morceau de code de préférence
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  18. #18
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Ce que je veux dire c'est que dans cette forms je choisi un numéro d'abonnement et en faisant le choix j'ai des champs de textbox qui se remplissent automatiquement. En cliquant sur un bouton "editer" j'ai qlq champ textbox qui deviennent accessibles et d'autres non. Le champ txtlibab est parmi les champs inaccessibles. C'est a dire que la valeur du champ txtlibab reste la meme. En faisant qlq modifications des champs accessibles et en cliquant sur le bouton "modifier" tous les champs modifiés ainsi que les champs non modifiés doivent être inséré au niveau de la table. mais j'ai ce msg d'erreur qui apparait au niveau du champ txtlibab.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Dim cnx As New OleDbConnection
            Dim command = New OleDbCommand("update Abonnement set Abonnement.Num_abonnement='" & Cbxnumab.Text & "'" & ", Abonnement.Lib_abonnement='" & Txtlibab.Text & "'" & ", Abonnement.Date_debut_ab='" & Dates.Value & "'" & ", Abonnement.Date_fin_ab='" & Datef.Value & "'" & ", Abonnement.Montant_ab='" & Txtmontantab.Text & "'" & ", Abonnement.Num_frs='" & Txtnumfrs.Text & "'" & ", Abonnement.Nom_frs='" & Cbxfrs.Text & "'" & "where Num_abonnement='" & Cbxnumab.Text & "'", cnx)
            Try
                cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Documents and Settings\Administrateur.STANDARD\Mes documents\Projet Budget\Budget\Budget\Marches.mdb"
                cnx.Open()
                command.connection = cnx
                command.executenonquery()
                MsgBox("L'abonnement a été modifié avec succès", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                If Not (cnx Is Nothing) Then
                    cnx.Close()
                End If
            End Try

  19. #19
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par loverdev
    Ce que je veux dire c'est que dans cette forms je choisi un numéro d'abonnement et en faisant le choix j'ai des champs de textbox qui se remplissent automatiquement. En cliquant sur un bouton "editer" j'ai qlq champ textbox qui deviennent accessibles et d'autres non. Le champ txtlibab est parmi les champs inaccessibles. C'est a dire que la valeur du champ txtlibab reste la meme. En faisant qlq modifications des champs accessibles et en cliquant sur le bouton "modifier" tous les champs modifiés ainsi que les champs non modifiés doivent être inséré au niveau de la table. mais j'ai ce msg d'erreur qui apparait au niveau du champ txtlibab.
    Tu dois utiliser des paramètres SQL pour gérer proprement ce genre de problèmes. Les SqlParameter ou OleDbParameter gèrent automatiquement le fait qu'il y ait des apostrophes dans les valeurs. Je t'invite à faire une recherche dans le forum et les tutoriels sur les SqlParameter ou OleDbParameter pour avoir un exemple concret.

    Aspic : toujours avec ta méthode horrible de double ', tétu hein ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  20. #20
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Les oledbparameter sont seulement utilisés dans le cas d'un ajout d'un nouvel enregistrement. Mais moi je suis entrain de mosifier un enregistrement existant déjà dans la table.

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo