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

C# Discussion :

Requete SQL Update [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut Requete SQL Update
    Bonjour à tous,

    Voilà, ma requête est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    string sModifierSQL = "UPDATE [client] SET "
                    + "`nom` = "+ "'" + Nom +"',"
                    + "`prenom` = "+ "'" + Prenom +"',"
                    + "`ad1` = "+ "'" + Ad1 +"',"
                    + "`ad2` = "+ "'" + Ad2 +"',"
                    + "`cp` = "+ "'" + CP.ToString()+"',"
                    + "`ville` = "+ "'" + Ville +"',"
                    + "`pays` = "+ "'" + Pays +"',"
                    + "`fix` = "+ "'" + Fix +"',"
                    + "`port` = "+ "'" + Port +"',"
                    + "`email` = "+ "'" + Email +"',"
                    + "`nbenf` = "+ "'" + Nbenfant.ToString() +"',"
                    + "WHERE id_client = " + m_IndexDataSet.ToString();
    Je m'en sers pour mettre a jour une base Access.
    Quand j'essaye de l'utiliser, j'obtiens le message d'erreur suivant :
    Erreur de syntaxe dans la requête update.
    Vous me direz, la réponse est dans la question mais je ne trouve pas l'erreur.

    Si quelqu'un à une idée, ca me permettrait de pouvoir avancer car c'est ma première requête UPDATE. (Mes SELECT, INSERT et DELETE fonctionnent :/)

  2. #2
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Salut,

    Il n'y a pas d'apostrophe au nom des champs

  3. #3
    Membre chevronné
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Par défaut
    Affiche ta variable sModifierSQL après avoir fait toutes les concaténations, et exécute la requete directement dans access si tu ne trouves pas l'erreur.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut essai
    Salut merci a toi pour ta réponse.

    J'ai essayé ta méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    string sModifierSQL = "UPDATE [client] SET "
                    + "`nom` = "+ "" + Nom +","
                    + "`prenom` = "+ "" + Prenom +","
                    + "`ad1` = "+ "" + Ad1 +","
                    + "`ad2` = "+ "" + Ad2 +","
                    + "`cp` = "+ "" + CP.ToString()+","
                    + "`ville` = "+ "" + Ville +","
                    + "`pays` = "+ "" + Pays +","
                    + "`fix` = "+ "" + Fix +","
                    + "`port` = "+ "" + Port +","
                    + "`email` = "+ "" + Email +","
                    + "`nbenf` = "+ "" + Nbenfant.ToString() +","
                    + "WHERE id_client = " + m_IndexDataSet.ToString();]


    Et j'obtiens l'erreur suivante :
    opérateur absent
    et quand j'affiche le contenu de la requete il ne m'affiche que le contenu de ma variable Ad1.

    Merci.

  5. #5
    Membre chevronné
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Par défaut
    Citation Envoyé par foxnono06 Voir le message
    et quand j'affiche le contenu de la requete il ne m'affiche que le contenu de ma variable Ad1.
    C'était le but, pouvoir voir ta requête "brute" et l'exécuter sans passer par C# ...

  6. #6
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut executer requete dans Access
    Je suis vraiment débutant et je t'avoue que je ne sais pas comment éxecuter ma requête directement dans Access pour la tester. Lorsque je l'affiche j'obtiens :

    UPDATE [client] SET `nom`='Ans',`prenom`='aaa',`ad1`= '112 aaa',`ad2`='ds qsdqs',`cp`='06000',`ville`='Aaa',`pays`='Aaa',`fix`='000000000',`port`='0000000000',`email`='aaa@yahoo.fr',`nbenf`='1',WHERE id_client =2

  7. #7
    Membre chevronné
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Par défaut
    Pardon je ne voulais pas être désagréable.
    [client] c'est censé être le nom de ta table ? Il n'y aurait pas des crochets en trop ?

  8. #8
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut yonpo
    yonpo j'ai essayé ta méthode et j'ai tjs une erreur de syntaxe.

  9. #9
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Par défaut
    Isythiel : j'ai enlevé les crochets tjs une erreure de syntaxe

  10. #10
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Il n'y a pas de virgule avant le WHERE

  11. #11
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 823
    Par défaut
    J'imagine que si tu postes ici, c'est que tu es en C#...
    L'utilisation de requêtes concaténées comme celle que tu nous montres est le meilleur moyen de se faire planter sa base de données. Tu connais l'injection SQL ?
    Tu devrais te pencher sur les requêtes paramétrées (tu trouveras ça facilement sur le net). Je pense que ça doit marcher avec MS Access, mais je n'ai jamais essayé.

  12. #12
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Je pensais plutôt à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    string sModifierSQL = "UPDATE [client] SET "
                    + "nom = "+ "'" + Nom +"',"
                    + "prenom = "+ "'" + Prenom +"',"
                    + "ad1 = "+ "'" + Ad1 +"',"
                    + "ad2 = "+ "'" + Ad2 +"',"
                    + "cp = "+ "'" + CP.ToString()+"',"
                    + "ville = "+ "'" + Ville +"',"
                    + "pays = "+ "'" + Pays +"',"
                    + "fix = "+ "'" + Fix +"',"
                    + "port = "+ "'" + Port +"',"
                    + "email = "+ "'" + Email +"',"
                    + "nbenf = "+ "'" + Nbenfant.ToString() +"',"
                    + "WHERE id_client = " + m_IndexDataSet.ToString();

  13. #13
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 823
    Par défaut
    ou en plus simple, pour répondre à un message beaucoup plus haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string sModifierSQL = "UPDATE [client] SET nom = '" + Nom +"', prenom = '" + Prenom +"', ad1 = '" + Ad1 +"', ad2 = '" + Ad2 +"', cp = '" + CP.ToString()+"', ville = '" + Ville +"', pays = '" + Pays +"', fix = '" + Fix +"', port = '" + Port +"', email = '" + Email +"', nbenf = '" + Nbenfant.ToString() +"' WHERE id_client = " + m_IndexDataSet.ToString();
    Pourquoi se compliquer la vie aec des concaténations inutiles... ?
    et as-tu regardé pour faire une requête paraméétrée ?

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

Discussions similaires

  1. requete SQL update base access
    Par samtheh dans le forum VBA Access
    Réponses: 6
    Dernier message: 01/06/2007, 13h06
  2. requete sql update
    Par neuneu1 dans le forum Bases de données
    Réponses: 18
    Dernier message: 20/04/2007, 09h56
  3. requete sql update/insert
    Par snetechen dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/04/2007, 17h29
  4. [VBA][SQL] code pour requete sql update en vba
    Par titocv723 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 24/10/2006, 17h45
  5. Parametres listbox requete SQL & "updateable query" erreur
    Par haibane dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 01/09/2006, 11h52

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