Problème d'insertion de donnée. [Résolu]

Messages postés
7
Date d'inscription
mercredi 1 juin 2011
Dernière intervention
15 juin 2012
- - Dernière réponse : cs_jopop
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
7
Date d'inscription
mercredi 1 juin 2011
Dernière intervention
15 juin 2012
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Superslinky
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
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.
Commenter la réponse de cs_jopop
Messages postés
7
Date d'inscription
mercredi 1 juin 2011
Dernière intervention
15 juin 2012
0
Merci
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.
Commenter la réponse de Superslinky
Messages postés
7
Date d'inscription
mercredi 1 juin 2011
Dernière intervention
15 juin 2012
0
Merci
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; }
        }
    }
Commenter la réponse de Superslinky
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
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
Commenter la réponse de cs_jopop

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.