none
Afficher des donnees d'une BDD Access dans TextBox RRS feed

  • Question

  • Salut tt le monde ,

    SVP , quelqu'un pourrait-il m'indiquer comment peut-on afficher des donnees d'une BDD Access dans plusieurs TextBox (sachant que j'utilise une connexion sur une ComboBox avec la meme table) .

    merci d'avance .

    mardi 9 septembre 2008 15:16

Réponses

  • J'ai pris un peu de temps car je voulais vérifier une réponse.

    Voici donc un petit exemple qui devrait te montrer comment "binder" ton textbox.

     

    J'ai pris un form avec un combobox(combobox1) et 2 textbox (textbox1 et textbox2) puis dans le form load je mets ceci:

     

    Code Snippet

            private void Form1_Load(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add(new DataColumn("Description"));
                dt.Columns.Add(new DataColumn("Valeur"));
                dt.Columns.Add(new DataColumn("Valeur2"));
                dt.Columns.Add(new DataColumn("Valeur3"));

                DataRow r1 = dt.NewRow();
                r1["Description"] = "1 mois";
                r1["Valeur"] = "1";
                r1["Valeur2"] = "1-1";
                r1["Valeur3"] = "1-2";
                dt.Rows.Add(r1);
                DataRow r2 = dt.NewRow();
                r2["Description"] = "6 mois";
                r2["Valeur"] = "6";
                r2["Valeur2"] = "6-1";
                r2["Valeur3"] = "6-2";
                dt.Rows.Add(r2);
                DataRow r3 = dt.NewRow();
                r3["Description"] = "2 ans";
                r3["Valeur"] = "24";
                r3["Valeur2"] = "24-1";
                r3["Valeur3"] = "24-2";
                dt.Rows.Add(r3);
                comboBox1.DataSource = dt;
                comboBox1.DisplayMember = "Description";
                comboBox1.ValueMember = "Valeur";


                textBox1.DataBindings.Add("Text", dt, "Valeur2");
                textBox2.DataBindings.Add("Text", dt, "Valeur3");


            }

     

    Les 2 dernières lignes sont celles qui t'intéressent réellement. Je pense que tu ne devrais pas avoir de mal à partir de là d'adapter ton code.

     

    bon databinding

    mercredi 10 septembre 2008 13:47

Toutes les réponses

  • Tu ne donnes pas beaucoup d'infos.

     

    Voici une façon de faire (si ça ne convient pas n'hésites pas à donner un peu plus de détails sur ton appli):

     

    En utilisant le designer de visual tu sélectionnes ton objet puis dans les propriétés tu cherches (databindings), tu cliques sur (avancées) et tu auras un assistant pour t'aider à lier ta textbox. (note: le champ qui t'intéresse est le champ qu'il devrait te proposer par défaut à savoir text)

     

    mercredi 10 septembre 2008 08:03
  • Salut "Radric" ,

    je cherche pas a connecter mon TextBox a travers l'IDE , je veux ,si c'est possible , le code .

    pour etre plus clair , ma table de la BDD contient plusieurs champs "Chapitre"........"PrixUnit".....

    ma combo est connecté a "Chapitre" :

    Code Snippet

    this.ComboBox.DisplayMember = "Chapitre";

    this.ComboBox.ValueMember = "Chapitre";

     

     

    et je veux que en fonction de l'item selectionné je remplis mon TextBox par la valeur de "PrixUnit" correspondant .

    re merci .

     

    mercredi 10 septembre 2008 12:21
  • J'ai pris un peu de temps car je voulais vérifier une réponse.

    Voici donc un petit exemple qui devrait te montrer comment "binder" ton textbox.

     

    J'ai pris un form avec un combobox(combobox1) et 2 textbox (textbox1 et textbox2) puis dans le form load je mets ceci:

     

    Code Snippet

            private void Form1_Load(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add(new DataColumn("Description"));
                dt.Columns.Add(new DataColumn("Valeur"));
                dt.Columns.Add(new DataColumn("Valeur2"));
                dt.Columns.Add(new DataColumn("Valeur3"));

                DataRow r1 = dt.NewRow();
                r1["Description"] = "1 mois";
                r1["Valeur"] = "1";
                r1["Valeur2"] = "1-1";
                r1["Valeur3"] = "1-2";
                dt.Rows.Add(r1);
                DataRow r2 = dt.NewRow();
                r2["Description"] = "6 mois";
                r2["Valeur"] = "6";
                r2["Valeur2"] = "6-1";
                r2["Valeur3"] = "6-2";
                dt.Rows.Add(r2);
                DataRow r3 = dt.NewRow();
                r3["Description"] = "2 ans";
                r3["Valeur"] = "24";
                r3["Valeur2"] = "24-1";
                r3["Valeur3"] = "24-2";
                dt.Rows.Add(r3);
                comboBox1.DataSource = dt;
                comboBox1.DisplayMember = "Description";
                comboBox1.ValueMember = "Valeur";


                textBox1.DataBindings.Add("Text", dt, "Valeur2");
                textBox2.DataBindings.Add("Text", dt, "Valeur3");


            }

     

    Les 2 dernières lignes sont celles qui t'intéressent réellement. Je pense que tu ne devrais pas avoir de mal à partir de là d'adapter ton code.

     

    bon databinding

    mercredi 10 septembre 2008 13:47
  • j'ai deja essayé ces lignes de codes , jai meme essayé

    this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text",this.DTTableCHAP, "PrixUnit"));
    mais cela me donne une erreur :

    Impossible d'effectuer une liaison à la propriété ou la colonne PrixUnit sur le DataSource.
    Nom du paramètre : dataMember

    voila tt mes lignes code , peut etre il y a une erreur :

    Code

    private void frmDEVIS_Load(object sender, EventArgs e)

    {

    string SqlCHAP = "SELECT [CHAP].Chapitre FROM [CHAP]";

    OleDbDataAdapter DTAdapterCHAP = new OleDbDataAdapter(this.SqlCHAP, this.Conn);

    try

    {

    DTAdapterCHAP.Fill(this.DTSetCHAP, "CHAP");

    }

    catch

    {

    MessageBox.Show("Une erreur est survenue");

    this.Conn.Close();

    this.Close();

    }

    #endregion

    this.DTTableCHAP = DTSetCHAP.Tables["CHAP"];

    this.comboBox1.DataSource = this.DTTableCHAP;

    this.comboBox1.DisplayMember = "Chapitre";

    this.comboBox1.ValueMember = "Chapitre";

    this.comboBox1.Focus();

    }

     

     

    pardon pour le derangement

    mercredi 10 septembre 2008 14:28
  • j'ai trouvé le probleme , le probleme etait sur la requete , il faut selectionner le champ "PrixUnit" .

    mais il y a un autre probleme , le code precedent me permet pas la mise a jour du TextBox .

    j'ai meme essayé le code suivant avant le try mais ça n'a pas marché

    Code

    try

    {

    this.DTSetCHAP.Tables["CHAP"].Clear();

    }

    catch

    {

    }

     

     

    mercredi 10 septembre 2008 15:23