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

Windows Forms Discussion :

Commande update c#


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Points : 5
    Points
    5
    Par défaut Commande update c#
    Bonjour tout le monde
    j'ai essayé de mettre à jour mes données mais le problème est que lorsque je modifie une cellule appartenant au champ "Thème" par exemple c'est toute la colonne qui prend la même valeur et non pas seulement la cellule que j'ai modifiée.
    Voilà le code:
    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
    da.UpdateCommand = new SqlCommand("UPDATE TableTest SET Thème=@Thème, Date=@Date,Anomalie_Amélioration=@Anomalie_Amélioration, Causes=@Causes, Actions=@Actions, Responsable=@Responsable,Délais=@Délais,Date_Réalisation=@Date_Réalisation, Vérification_Efficacité=@Vérification_Efficacité,Efficacité=@Efficacité, Commentaire_Suivi=@Commentaire_Suivi", cs);   
                   da.UpdateCommand.Parameters.Add("@Thème", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Thème"].Value;
                   da.UpdateCommand.Parameters.Add("@Date", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Date"].Value;
                   da.UpdateCommand.Parameters.Add("@Anomalie_Amélioration", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Anomalie_Amélioration"].Value;
                   da.UpdateCommand.Parameters.Add("@Causes", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Causes"].Value;
                   da.UpdateCommand.Parameters.Add("@Actions", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Actions"].Value;
                   da.UpdateCommand.Parameters.Add("@Responsable", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Responsable"].Value;
                   da.UpdateCommand.Parameters.Add("@Délais", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Délais"].Value;
                   da.UpdateCommand.Parameters.Add("@Date_Réalisation", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Date_Réalisation"].Value;
                   da.UpdateCommand.Parameters.Add("@Vérification_Efficacité", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Vérification_Efficacité"].Value;
                   da.UpdateCommand.Parameters.Add("@Efficacité", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Efficacité"].Value;
                   da.UpdateCommand.Parameters.Add("@Commentaire_Suivi", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Commentaire_Suivi"].Value;
                   cs.Open();
                   da.UpdateCommand.ExecuteNonQuery();
                   cs.Close();

    ceci mis à part le fait que quand j'ai ajouté par la suite une ligne à mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((System.Data.DataRowView)dataGridView1.SelectedCells[0].OwningRow.DataBoundItem).Update();
    pour voir directement le changement dès que j'efectue une modification, l'erreur suivante apparaît:
    'System.Data.DataRowView' does not contain a definition for 'Update'.
    HELP

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il manque une clause WHERE dans ta requête, donc ça met à jour toutes les lignes... Il faut préciser une condition pour indiquer quelle ligne doit être mise à jour

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    merci pour ta réponse
    mais peux tu me donner plus de détails, j'ai pas vraiment compris où dois mettre le WHERE ? ://

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Bah je vais pas te faire un cours complet de SQL...
    http://sqlpro.developpez.com/cours/sqlaz/select/#L3

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    en fait j'ai oublié de mentionner que je suis débutante et sur ce je te demande de ne pas trop t'emporter contre moi
    et je n'ai pas besoin d'un cours complet en sql mais plutôt en c# car j'ai pas su où introduire le where dans mon code c#
    merci en tout cas !

  6. #6
    Membre confirmé

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Points : 574
    Points
    574
    Par défaut
    La clause WHERE à rajouter est du SQL. Ta requête devrait être de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @"UPDATE TableTest SET Thème=@Thème, Date=@Date,Anomalie_Amélioration=@Anomalie_Amélioration, 
    Causes=@Causes, Actions=@Actions, Responsable=@Responsable,
    Délais=@Délais,Date_Réalisation=@Date_Réalisation, Vérification_Efficacité=@Vérification_Efficacité,
    Efficacité=@Efficacité, Commentaire_Suivi=@Commentaire_Suivi 
    WHERE id=@id"
    où "id" est la colonne d'id dans ta table et @id la valeur paramétrée correspondant à la ligne à mettre à jour, et il faut rajouter la ligne suivante dans ta liste de SqlParameters :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    da.UpdateCommand.Parameters.Add("@id", SqlDbType.Integer).Value = valeur_id;
    où valeur_id est la valeur de ton id en C#.

    C'est donc bien d'un cours SQL dont tu as besoin !
    "C'est tellement merdique que toute modification est une amélioration !"

Discussions similaires

  1. Commande update dans un formView
    Par florent-k dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/07/2007, 20h51
  2. commande update asp.net
    Par deathsurfer dans le forum Accès aux données
    Réponses: 2
    Dernier message: 18/07/2007, 14h43
  3. [Oracle] probleme avec commande UPDATE
    Par edw0000d dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/01/2007, 18h19
  4. Commande Update... vider certains champ dans table.
    Par angelevil dans le forum ASP
    Réponses: 3
    Dernier message: 04/05/2005, 21h08
  5. interbase commande UPDATE et NIL
    Par mitur dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/11/2004, 18h37

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