Ajout dans BDD [Résolu]

- - Dernière réponse :  thefolin - 24 oct. 2012 à 14:52
Bonjour ,

Mon probleme est que je n'arrive pas a ajouter plusieurs données dans ma BDD .
La situation en ce moment est : je code sous Visual Studio 2010 avec un BDD sous Access 2010.

Je code en nappage (en couche ) Couche metier, client et doonée.

Quand je lance mon application et que je rentre une donnée dans ma TextBox ce message apparait :
La référence d'objet n'est pas définie à une instance d'un objet.
Bon je vous donne le code des 3 couches qui se relie entre elle .
Excuse moi si c'est un code un peu long .


Ici on trouve l'evenement lier au quand on clique sur le bouton
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Maquette.C.Metier;

namespace Maquette.C.Client
{
    public partial class Caracteristique : Form
    {
        public Caracteristique()
        {
            InitializeComponent();
        }

        private System.Data.DataSet oDS;
        private CL_POUS_CARACTERISTIQUE oCarac_p;

        private void Pous_Carac_Load(object sender, EventArgs e)
        {

            this.oDS = new DataSet();
            this.oCarac_p = new CL_POUS_CARACTERISTIQUE();

        }
        /*Ajouter un produit */
        private void button1_Click(object sender, EventArgs e)
        {
            this.oCarac_p.m_add_pous(this.textBox1.Text, this.textBox2.Text, this.textBox3.Text, this.textBox4.Text, this.textBox5.Text, this.textBox6.Text, this.textBox7.Text, this.textBox8.Text, this.textBox9.Text, this.textBox10.Text, this.textBox11.Text);
        }


Ici on trouve la requete SQL pour manipuler la BDD (ici on ajout des données )
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Maquette.C.Metier
{
    class CL_TB_POUS_CARACTERISTIQUE
    {
        public string rq_sql;
        // Pour ajouter voici la requete SQL 
        public string m_Ajout_Pous_All(string produit, string CME, string Granulometrie, string TAI_couche, string TAI_nuage, string EMI, string Quantite, string Conditionnement, string Unite_travail, string Situation_travail, string Classe_explosition)
        {
            this.rq_sql = " INSERT INTO TB_POUS ([Produit],[CME],[Granulometrie],[TAI_couche],[TAI_nuage],[EMI],[Quantite],[Conditionnement],[Unite_travail],[Situation_travail],[Classe_explosition])" +
                "VALUES('" + produit
                + "','" + CME
                + "','" + Granulometrie
                + "','" + TAI_couche
                + "','" + TAI_nuage
                + "','" + EMI
                + "','" + Quantite
                + "','" + Conditionnement
                + "','" + Unite_travail
                + "','" + Situation_travail
                + "','" + Classe_explosition
                + "');";
return this.rq_sql;


Ici on trouve la méthode qui contient la requete SQL pour que l'évenment marche apres
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Maquette.C.Donnee;

namespace Maquette.C.Metier
{
    class CL_POUS_CARACTERISTIQUE
    { 
        private CL_CAD oCAD;
        private CL_TB_POUS_CARACTERISTIQUE oCarac;

       

        public CL_POUS_CARACTERISTIQUE()
        {
            this.oCAD = new CL_CAD();
            this.oCarac = new CL_TB_POUS_CARACTERISTIQUE();
        }

        // Methode pour ajouter des caracteristique pour le produit 
        public void m_add_pous(string produit, string CME, string Granulometrie, string TAI_couche, string TAI_nuage, string EMI,string Quantite, string Conditionnement, string Unite_travail, string Situation_travail,string Classe_explosition)
        {
            this.oCAD.m_ActionRows(this.oCarac.m_Ajout_Pous_All(produit, CME, Granulometrie, TAI_couche, TAI_nuage, EMI, Quantite,  Conditionnement, Unite_travail,  Situation_travail, Classe_explosition));
        }



Je ne vous donne pas le code pour la connexion de la BDD comme je peux afficher et modifier la BDD .DOnc le probleme ne vient pas de la .
Merci de m'aide ou de donnée un piste de solution .
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
11 juin 2013
8
3
Merci
Bonjour,

Je pense que le problème vient du fait que
private void Pous_Carac_Load(object sender, EventArgs e)
ne doit pas être appelé et donc que ton oCarac_p n'est pas instancié.
Essaies en mettant cette ligne :
this.oCarac_p = new CL_POUS_CARACTERISTIQUE();
au début de ton évènement clic pour voir si ca marche.
Soit ça, soit une erreur dans un nom de textbox qui n'existe pas.

Dire « Merci » 3

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

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

Commenter la réponse de cs_L0ci
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
11 juin 2013
8
3
Merci
Dans le code que tu as fourni le oCarac_p est instancié dans l'évènement de Load et non dans le clic du bouton.
ton code :
private void Pous_Carac_Load(object sender, EventArgs e)
        {

            this.oDS = new DataSet();
            this.oCarac_p = new CL_POUS_CARACTERISTIQUE();

        }
        /*Ajouter un produit */
        private void button1_Click(object sender, EventArgs e)
        {
            this.oCarac_p.m_add_pous(this.textBox1.Text, this.textBox2.Text, this.textBox3.Text, this.textBox4.Text, this.textBox5.Text, this.textBox6.Text, this.textBox7.Text, this.textBox8.Text, this.textBox9.Text, this.textBox10.Text, this.textBox11.Text);
        }

qu'il faudrait remplacer par ca pour les tests :
private void Pous_Carac_Load(object sender, EventArgs e)
        {

            this.oDS = new DataSet();

        }
        /*Ajouter un produit */
        private void button1_Click(object sender, EventArgs e)
        {
            this.oCarac_p = new CL_POUS_CARACTERISTIQUE();
            this.oCarac_p.m_add_pous(this.textBox1.Text, this.textBox2.Text, this.textBox3.Text, this.textBox4.Text, this.textBox5.Text, this.textBox6.Text, this.textBox7.Text, this.textBox8.Text, this.textBox9.Text, this.textBox10.Text, this.textBox11.Text);
        }

Dire « Merci » 3

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

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

Commenter la réponse de cs_L0ci
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
11 juin 2013
8
0
Merci
Bonjour,
Est ce que tu pourrais indiquer quelle ligne génère l'erreur. Ce message signifie que tu utilises un objet sans l'avoir instancié
ex:
Objet o = new Objet();
o.méthode();

et non:
Objet o;
o.méthode();
qui va générer une erreur.
Commenter la réponse de cs_L0ci
0
Merci
/*Ajouter un produit */
private void button1_Click(object sender, EventArgs e)
{
this.oCarac_p.m_add_pous(this.textBox1.Text, this.textBox2.Text, this.textBox3.Text, this.textBox4.Text, this.textBox5.Text, this.textBox6.Text, this.textBox7.Text, this.textBox8.Text, this.textBox9.Text, this.textBox10.Text, this.textBox11.Text);
}



voici la ligne qui a des problemes .
Le probleme c est quand j'utilise l 'evenement de ce bouton qui doit ajouter des données
Commenter la réponse de thefolin
0
Merci
Deja merci de me repondre mais le boue de code que tu ma passer étais déjà mis en place .
J'ai regardé mes TexBox il n'y a pas d'erreur de syntaxe
Commenter la réponse de thefolin
0
Merci
Merci de la réponce mais j'ai réussis à me débrouiller .
Ma solution est très simple j'ai refait mon Windows form donc la classe Client Pous_Carac

Résultat : L'ajout de donnée marche .

L0ci merci de ta part pour tes solution qui peuvent résoudre certaint problemes .

ps : Je n'ai rien touche dans mon code

Cordialement thefolin
Commenter la réponse de thefolin

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.