Problème d'insertion de donnée.

Résolu
Superslinky Messages postés 7 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 15 juin 2012 - 30 mai 2012 à 15:02
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 31 mai 2012 à 14:43
Bonjours à tous,

Je m'adresse à vous car je souhaite réaliser une application dont le but final est le tirage au sort d'un ou plusieurs candidat dans une base de donnée.

L'utilisateur doit au lancement du programme renseigner sont nom et sont prénom, puis cliquer sur un bouton participer.

Je développe en C# avec Visual Studio 2010, ma BDD est sous SQL server 2005.

Le problème se situe à ce niveau:

        public String ajout_candidat(String nom_can, String prenom_can) // Requête d'ajout Nom + Prenom a la table candidat 
        {
            this.rqSQL = "INSERT INTO JeuxConcours.dbo.candidat (nom_can, prenom_can) VALUES ('" + nom_can + "','" + prenom_can + "')";
            Console.Out.WriteLine("Mappage de la requete ajout candidat" + this.rqSQL);

            return this.rqSQL;
        }


Lorsque je compile ma console me renvoi ceci:

Mappage de la requete ajout candidat INSERT INTO JeuxConcours.dbo.candidat (nom_can, prenom_can) VALUES ('','')


Les valeurs reste désespérément vide malgré l'ajout d'un nouvelle ligne dans ma table.

Le bouton "participer" ressemble à :

private void Participer_Click(object sender, EventArgs e) // Recupere les infos des textbox et les enregistre dans la table 
        {
            if (this.nomcand.Text != "" && this.prenomcan.Text != "")
            {
                this.oCandidat.Nom = this.nomcand.Text;
                this.oCandidat.Prenom = this.prenomcan.Text;
                this.oGPCS_candidat.NouveauCandidat(this.oCandidat);
                MessageBox.Show("Votre participation à été enregistrée, vous allez recevoir un e-mail de confirmation.", "Merci d'avoir joué", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            else
            {
                MessageBox.Show("Un ou plusieurs champs de sont pas complet, merci de tous les renseigner.", "Information incomplette", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }


ET mon architecture se découpe en plusieurs couches:
- DAO
- Métier
- Composant travail (accesseurs)
- Contrôleur de Workflow
- Groupe de processus
- Mappage
- IHM


Les saisies utilisateurs traversent ces couches parfaitement de la textbox à la BDD mais apparaissent vide à l’intérieur de cette dernière.

Merci d'avance pour votre aide n’hésitez pas à demander plus de précisions.

5 réponses

Superslinky Messages postés 7 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 15 juin 2012
31 mai 2012 à 13:25
Re-up j'ai la solution je remplace le contenu de ma couche de processus par:

namespace Client.GPCS
{
    public class GPCS_Candidat
    {
        private CL_CAM oCAM;
        private message oMsg = new message();
        private Candidat oCandidat = new Candidat();


        public void NouveauCandidat(Candidat aCandidat) //Processus d'ajout de candidat. 
        {
            this.oCandidat = aCandidat;
            this.oMsg.OCandidat = this.oCandidat;
            this.oMsg.Message = "CANDIDAT_nouveau";
            this.oCAM = new CL_CAM(this.oMsg);
            this.oCAM.redirection();
        }
    }
}


Message console:
Mappage de la requete ajout candidat INSERT INTO JeuxConcours.dbo.candidat (nom_can, prenom_can) VALUES ('john','doe')


Bonne continuation à tous.
3
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
30 mai 2012 à 15:18
Salut,

tu nous montre une fonction ajout(string, string) puis après tu appelles une fonction ajout(myClass), ça va être difficile pour nous de déceler quelque erreur que ce soit.
0
Superslinky Messages postés 7 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 15 juin 2012
30 mai 2012 à 15:48
Alors dans l'ordre des couches cela donne:

IHM:

        Candidat oCandidat = new Candidat();
        GPCS_Candidat oGPCS_candidat = new GPCS_Candidat();

        private void Participer_Click(object sender, EventArgs e) // Recupere les infos des textbox et les enregistre dans la table 
        {
            if (this.nomcand.Text != "" && this.prenomcan.Text != "")
            {
                this.oCandidat.Nom = this.nomcand.Text;
                this.oCandidat.Prenom =  this.prenomcan.Text;
                this.oGPCS_candidat.NouveauCandidat(this.oCandidat);
                MessageBox.Show("Votre participation à été enregistrée, vous allez recevoir un e-mail de confirmation.", "Merci d'avoir joué", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            else
            {
                MessageBox.Show("Un ou plusieurs champs de sont pas complet, merci de tous les renseigner.", "Information incomplette", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }


GPCS:

    public class GPCS_Candidat
    {
        private CL_CAM oCAM;
        private message oMsg  = new message();
        private Candidat oCandidat = new Candidat();
        private Candidat aCandidat = new Candidat();

        public void NouveauCandidat(Candidat aCandidat) //Processus d'ajout de candidat 
        {
            this.oCandidat = this.aCandidat;
            this.oMsg.OCandidat = this.oCandidat;
            this.oMsg.Message = "CANDIDAT_nouveau";
            this.oCAM =  new CL_CAM(this.oMsg);
            this.oCAM.redirection();
        }
    }


CAM

        private message oMsg  = new message();
        private CtrlWFCandidatNouveau oCtrlWFCandidatNouveau;

        public CL_CAM(message aMsg) // Gestion des messages 
        {
            this.oMsg = aMsg;
        }

        public message redirection() // Redirection 
        {
            if (this.oMsg.Message == "CANDIDAT_nouveau")
            {
                this.oCtrlWFCandidatNouveau =  new CtrlWFCandidatNouveau(this.oMsg);
                this.oCtrlWFCandidatNouveau.execute();
                return this.oMsg;
            }

            else
            {
                return null;
            }

        }


CTRLWF

       private Candidat oCandidat  = new Candidat();
        private message oMsg = new message();
        private MappageCandidat oMap = new MappageCandidat();
        private CL_CAD oCAD = new CL_CAD();


        public CtrlWFCandidatNouveau(message aMessage) //Gestion des messages 
        {
            this.oCandidat =  aMessage.OCandidat;
        }

        public void execute() //Ajoute le nom et le prénom à la table candidat 
        {
            oCAD.m_ActionRows(oMap.ajout_candidat(this.oCandidat.Nom, this.oCandidat.Prenom));
        }


Mappage

        private String rqSQL  = null;


        public String ajout_candidat(String nom_can, String prenom_can) // Requête d'ajout Nom + Prenom a la table candidat 
        {
            this.rqSQL = "INSERT INTO JeuxConcours.dbo.candidat (nom_can, prenom_can) VALUES ('" + nom_can + "','" + prenom_can + "')";
            Console.Out.WriteLine("Mappage de la requete ajout candidat " + this.rqSQL);

            return this.rqSQL;
        }


Je cherche à comprendre pourquoi mes valeurs de "nom_can" et "prenom_can" restent vides.

Merci.
0
Superslinky Messages postés 7 Date d'inscription mercredi 1 juin 2011 Statut Membre Dernière intervention 15 juin 2012
31 mai 2012 à 11:14
Je me permet de up ce topic pour vous faire voir mes accesseurs omis dans mon post précédent.

Message:

    public class message
    {
        private Candidat oCandidat;
        private String msg;


        public Candidat OCandidat //Candidat 
        {
            get { return oCandidat; }
            set { oCandidat = value; }
        }

        public String Message //Message 
        {
            get { return msg; }
            set { msg =  value; }
        }
    }


Candidat:

    public class Candidat
    {
        public String nom;
        public String prenom;

    public Candidat() { }

        public String Nom //Nom 
        {
            get { return nom; }
            set { nom  = value; }
        }

        public String Prenom // Prenom 
        {
            get { return prenom; }
            set { prenom = value; }
        }
    }
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
31 mai 2012 à 14:43
Re,

content pour toi, je t'avouerai que tout ce code c'était un sacré bor.del et j'avais pas trop envie de mettre le nez dedans

Bonne continuation à toi
0
Rejoignez-nous