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

Langage SQL Discussion :

Problème requête update


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 150
    Points : 67
    Points
    67
    Par défaut Problème requête update
    bonjour,
    j'ai une problème dans une requete update
    cella la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Try
                        Dim commande4 As SqlCommand = New SqlCommand("
    UPDATE  dbo.etat_engagement SET montant_engager = " & Me.montant_engager.Text & ",objet_depense = '" & Me.objet_depense.Text & "',fournisseur = '" & Me.fournisseur.Text & "', n_nature_engagement = '" & Me.n_nature_engagement.Text & "' WHERE id2 = '" & Me.Label4.Text & "' 
    ", conn)
                        commande4.ExecuteNonQuery()
                        MsgBox("enregistrement modife avec succes")
                                        Catch
                        MsgBox("echec de modification")
     
                    End Try
    quand j'exécute cette requete parfois ca marche parfois non!
    j'ai remarqué que si les données insérées dans la requête ne sont pas modifiées par rapport aux données de la BDD la requête échoue
    je sais pas vraiment où est le problème

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    As-tu essayé d'afficher le contenu de ta requête pour t'assurer qu'elle était bien formée ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Tes Me.*.Text peuvent-ils être vides ? Il est fort à parier que çà provient de là. Car dans ce cas ta requête sera mal formée.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 150
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Drizzt [Drone38] Voir le message
    Tes Me.*.Text peuvent-ils être vides ? Il est fort à parier que çà provient de là. Car dans ce cas ta requête sera mal formée.
    oui parfois je laisse des champs vide
    comment je peut résoudre çà ? j'aimerai modifié les champs par n'importe quoi aussi le vide
    j'ai bien autorisé NULL dans ma bdd sinon

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il faut tester tes variables et construire ta requête en fonction de l'existence ou non d'une valeur pour les variables.

    Un truc du genre :
    requete = "UPDATE dbo.etat_engagement SET "
    si Me.montant_engager.Text n'est pas vide
    requete = requete & montant_engager = " & Me.montant_engager.Text
    fin si
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 150
    Points : 67
    Points
    67
    Par défaut
    on peut pas modifier un champ avec du vide ???

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de lignes et de colonnes !

    Si tes variables sont vides, la requête que tu envoies au serveur est de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE  dbo.etat_engagement 
    SET montant_engager = ,objet_depense = '',fournisseur = '', n_nature_engagement = '' 
    WHERE id2 = ''
    Tu vois bien qu'il manque quelque chose après le premier = !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par jalalnet Voir le message
    on peut pas modifier un champ avec du vide ???
    Si !
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE ...
    SET MaColonne = ''

    Mais NULL, ce n'est pas vide, et réciproquement.

    Il est également possible de placer une colonne a NULL :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE ...
    SET MaColonne = NULL

    Vous pouvez néanmoins tester si une colonne est NULL ou chaine vide :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE COALESCE(MaColonne, '') = ''
    ou
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    WHERE (
        MaColonne IS NULL
        OR
        MaColonne = ''
    )

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 150
    Points : 67
    Points
    67
    Par défaut
    enfin trouvé l'erreur
    le champs montant_engager est de type money avec (,)
    la point virgule entraîne une syntaxe incorrecte dans la requête


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SET montant_engager = " & Me.montant_engager.Text &",objet_depense = " & Me.objet_depense.Text & "


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SET montant_engager = " 125663,345 ",objet_depense = " blalalalal "

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème requète update, sql server 2000
    Par Guena5635 dans le forum Développement
    Réponses: 3
    Dernier message: 28/04/2008, 10h32
  2. [Débutant] Problème requête Update
    Par aure298 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/01/2008, 16h54
  3. [C#] Problème requête update via OdbcDataAdpter
    Par LE NEINDRE dans le forum ASP.NET
    Réponses: 12
    Dernier message: 16/06/2006, 11h52
  4. Problème Requête UPDATE (ou pas)
    Par mastasushi dans le forum Access
    Réponses: 7
    Dernier message: 03/05/2006, 08h42
  5. [MySQL] problème requête UPDATE
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 23/10/2005, 18h28

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