Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 13h19   #1
Nouveau Membre du Club
 
jalal zaime
Inscription : novembre 2010
Messages : 141
Détails du profil
Informations personnelles :
Nom : jalal zaime

Informations forums :
Inscription : novembre 2010
Messages : 141
Points : 37
Points : 37
Par défaut Problème requête update

bonjour,
j'ai une problème dans une requete update
cella la
Code :
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
jalalnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 14h02   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
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
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 14h41   #3
Membre émérite
 
Avatar de Drizzt [Drone38]
 
Homme
Inscription : mai 2004
Messages : 739
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : mai 2004
Messages : 739
Points : 979
Points : 979
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
Drizzt [Drone38] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 14h49   #4
Nouveau Membre du Club
 
jalal zaime
Inscription : novembre 2010
Messages : 141
Détails du profil
Informations personnelles :
Nom : jalal zaime

Informations forums :
Inscription : novembre 2010
Messages : 141
Points : 37
Points : 37
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
jalalnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 15h39   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 001
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 001
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h26   #6
Nouveau Membre du Club
 
jalal zaime
Inscription : novembre 2010
Messages : 141
Détails du profil
Informations personnelles :
Nom : jalal zaime

Informations forums :
Inscription : novembre 2010
Messages : 141
Points : 37
Points : 37
on peut pas modifier un champ avec du vide ???
jalalnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h36   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 001
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 001
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
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 :
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 17h17   #8
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par jalalnet Voir le message
on peut pas modifier un champ avec du vide ???
Si !
Code SQL :
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 :
1
2
3
 
UPDATE ...
SET MaColonne = NULL

Vous pouvez néanmoins tester si une colonne est NULL ou chaine vide :
Code SQL :
1
2
 
WHERE COALESCE(MaColonne, '') = ''
ou
Code SQL :
1
2
3
4
5
6
 
WHERE (
    MaColonne IS NULL
    OR
    MaColonne = ''
)
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 21h13   #9
Nouveau Membre du Club
 
jalal zaime
Inscription : novembre 2010
Messages : 141
Détails du profil
Informations personnelles :
Nom : jalal zaime

Informations forums :
Inscription : novembre 2010
Messages : 141
Points : 37
Points : 37
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 :
SET montant_engager = " & Me.montant_engager.Text &",objet_depense = " & Me.objet_depense.Text & "


Code sql :
SET montant_engager = " 125663,345 ",objet_depense = " blalalalal "
jalalnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h14.


 
 
 
 
Partenaires

Hébergement Web