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

ASP.NET Discussion :

Souci fonction modification


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut Souci fonction modification
    Bonjour à tous,
    j'ai débuté récemment la création d'un portfolio regroupant des fiches de compétence. Seulement, j'ai un souci avec la modification des fiches. Je n'ai pas d'erreur, mais cela ne prend pas l'update en compte.

    Voici le code de ma fonction de modification :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     try
                {
                    MySqlConnection connection = new MySqlConnection("SERVER=************; Database=************;UID=************;PASSWORD=************");
                    MySqlCommand commande = new MySqlCommand();
     
                    commande.Connection = connection;
     
                    //Ordre SQL
     
                    commande.CommandText = @"UPDATE fiche 
                                                    SET Obj_FI = @Obj_FI, 
                                                    Des_FI= @Des_FI, 
                                                    Duree_FI= @Duree_FI,
                                                    Local_FI = @Local_FI, 
                                                    Cont_FI = @Cont_FI, 
                                                    Situa_FI = @Situa_FI, 
                                                    Lieu_FI = @Lieu_FI 
                                             WHERE ficheid = @ficheid;";
     
                    //Paramètres
     
                    commande.Parameters.AddWithValue("ficheid", Fiche.ficheid);
                    commande.Parameters.AddWithValue("Obj_FI", Fiche.Obj_FI);
                    commande.Parameters.AddWithValue("Des_FI", Fiche.Des_FI);
                    commande.Parameters.AddWithValue("Duree_FI", Fiche.Duree_FI);
                    commande.Parameters.AddWithValue("Local_FI", Fiche.Local_FI);
                    commande.Parameters.AddWithValue("Cont_FI", Fiche.Cont_FI);
                    commande.Parameters.AddWithValue("Situa_FI", Fiche.Situa_FI);
                    commande.Parameters.AddWithValue("Lieu_FI", Fiche.Lieu_FI);
     
                    //Connexion + exécution de l'ordre sql + déconnection
     
                    connection.Open();
     
                    commande.ExecuteNonQuery();
     
                    connection.Close();
                }
                catch (Exception exception)
                {
                    throw exception;  
                }
    Avez-vous une idée d'où cela peut venir ?

    Merci par avance du temps que vous me consacrez.

    Leam

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je crois qu'il faut inclure l'arobase '@' dans le nom du paramètre lorsque tu définis la valeur. Exemple :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    commande.Parameters.AddWithValue("@ficheid", Fiche.ficheid);
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Tout d'abord merci d'avoir pris le temps d'analyser mon problème.

    J'ai donc ajouté les '@' :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     try
                {
                    MySqlConnection connection = new MySqlConnection("SERVER=************; Database=************;UID=************;PASSWORD=************");
                    MySqlCommand commande = new MySqlCommand();
     
                    commande.Connection = connection;
     
                    //Ordre SQL
     
                    commande.CommandText = @"UPDATE fiche 
                                                    SET Obj_FI = @Obj_FI, 
                                                    Des_FI= @Des_FI, 
                                                    Duree_FI= @Duree_FI,
                                                    Local_FI = @Local_FI, 
                                                    Cont_FI = @Cont_FI, 
                                                    Situa_FI = @Situa_FI, 
                                                    Lieu_FI = @Lieu_FI 
                                             WHERE ficheid = @ficheid;";
     
                    //Paramètres
     
                    commande.Parameters.AddWithValue("@ficheid", Fiche.ficheid);
                    commande.Parameters.AddWithValue("@Obj_FI", Fiche.Obj_FI);
                    commande.Parameters.AddWithValue("@Des_FI", Fiche.Des_FI);
                    commande.Parameters.AddWithValue("@Duree_FI", Fiche.Duree_FI);
                    commande.Parameters.AddWithValue("@Local_FI", Fiche.Local_FI);
                    commande.Parameters.AddWithValue("@Cont_FI", Fiche.Cont_FI);
                    commande.Parameters.AddWithValue("@Situa_FI", Fiche.Situa_FI);
                    commande.Parameters.AddWithValue("@Lieu_FI", Fiche.Lieu_FI);
     
                    //Connexion + exécution de l'ordre sql + déconnection
     
                    connection.Open();
     
                    commande.ExecuteNonQuery();
     
                    connection.Close();
                }
                catch (Exception exception)
                {
                    throw exception;  
                }
    Le problème persiste puisque les modifications ne se réalisent toujours pas.. (pas d'erreurs non plus)

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Hmm est-ce que tu es sûr que l'ID que tu passes dans le paramètre @ficheid existe bien en base de données ?

    S'il n'existe pas, c'est comme si tu demandais à ton serveur SQL d'updater un enregistrement qui n'existe pas, donc forcément rien ne se passe.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    ficheid est bien égal à la fiche en cour d'utilisation.
    Aucune erreur de SQL signalée..

    Je ne comprend vraiment pas d'où le problème vient..

    Leam

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ok je ne suis pas convaincu par tes arguments, car rien ne me prouve que tu as bien vérifié que l'ID existe en base, ça me montre juste que tu as vérifié que l'ID soit bien celui de la fiche en cours

    Bref autre piste, je ne sais pas si ça peut changer quelque chose, mais tu peux enlever le point virgule à la fin de la requête SQL, il ne sert à rien.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Avant de pouvoir modifier une fiche, elles apparaissent toutes sur un dataGridView. Lorsque je souhaite en modifier une, je sélectionne une fiche je prend son ID et le stock dans une variable de session. Lorsque qu'en mode pas à pas sur Visual je stop après les paramètres (commande.Parameters.AddWithValue("@ficheid", Fiche.ficheid); ) je retrouve bien le bon n° de fiche stocké.

    Je viens de "trouver" le souci, je m'explique :

    L'update marche parfaitement sauf qu'il ne retrouve pas ce qui a été écrit pour la modification..
    En pas à pas si j'ai remplacé : TEST --> TEST1 il va me trouver Null.
    Alors qu'avant de déclencher l'update :

    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
    17
    18
    19
     
    fiche Fiche = new fiche();
                String ID = (String)Session["ficheid"];
                Fiche.ficheid = Convert.ToInt32(ID);
                Fiche.Obj_FI = this.obj_fi.Text;
                Fiche.Des_FI = this.des_fi.Text;
     
                Fiche.Duree_FI = Convert.ToInt32(this.duree_fi.Text);
     
                Fiche.Local_FI = this.local_fi.Text;
                Fiche.Cont_FI = this.cont_fi.Text;
                Fiche.Situa_FI = this.situa_fi.Text;
                Fiche.Act_FI = this.act_fi.Text;
     
                Fiche.Valid_FI = Convert.ToDateTime(this.valid_fi.Text);
     
                Fiche.Lieu_FI = this.lieu_fi.Text;
     
                ficheDB.modifier(Fiche); // Cela ramène au code précédemment montré
    Avez-vous une idée ?..

    Merci par avance,

    Leam

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Je viens de trouver l'erreur.
    Lorsque que je voulais corriger une fiche la fonction Page_Load passait toujours avant ma fonction de modification. (Ce qui remettait les champs comme ils étaient auparavant..)

    j'ai donc fais un PostBack == False sur la page_load.

    Merci de votre aide.

    Leam

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

Discussions similaires

  1. Soucis de modification de champ via formulaire
    Par symphyle dans le forum IHM
    Réponses: 3
    Dernier message: 13/01/2009, 19h59
  2. Fonction "modification?" besoin d'aide
    Par penou dans le forum Lisp
    Réponses: 3
    Dernier message: 21/07/2008, 16h11
  3. [Probléme] Fonction modification de date
    Par maloute80 dans le forum Langage
    Réponses: 8
    Dernier message: 04/12/2007, 08h17
  4. fonction modification de date
    Par cormami dans le forum Access
    Réponses: 2
    Dernier message: 03/08/2006, 13h57

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