Solved

Dynamic Combo Box

Posted on 2003-10-25
9
1,151 Views
Last Modified: 2009-07-29
Greetings to everyone,

I have 3 Combo Boxes on a C# form. All the data for those 3 ComboBox are popullated from an Oracle table. I want these3 ComboBox are dynamic linked to each other. That means, if I select another item in ComboBox1, the item in ComboBox2 will be changes to those associates with ComboBox1. Same to ComboBox3 and it depends on the item on ComboBox2.

I use the following code to fill ComboBox1.

      foreach (DataRow myRow in MyDataSet3.Tables[0].Rows)
                  {
                        campus.Items.Add(myRow["Region_code"]);
                  }

I know I need to modified the code for ComboBox1.TextChange. But need more details info.
Thanks in advance.

-Mark
0
Comment
Question by:mrong
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
9 Comments
 

Author Comment

by:mrong
ID: 9620691
Please ignore this question. I have found the solution by myself. I will post it by next Monday.

Thanks.
0
 
LVL 20

Accepted Solution

by:
TheAvenger earned 100 total points
ID: 9620692
OK, you have to make several things.

1. Create a dataset with 3 tables inside. In order to do this, the easiest way is to create a data adapter for each of your 3 tables, then select the 3 data adapters, right click and select generate dataset
2. When you have the dataset with the three tables, open it in design mode (it will be in your project) and add relations just like you would do this in the physical database - primary key and foreign key
3. On your combo boxes, select the following values in the properties window:
- Combo box 1: data source: the dataset.table1
- Combo box 2: data source: the dataset.table1.table2 (note that dataset.table2 will also be available but you MUST select dataset.TABLE1.TABLE2)
- Combo box 3: data source: the dataset.table1.table2.table3 - the same trick applies here

Now select values for the display member for every combo box to what exactly you want to show in the combo boxes (to see). You can also play with the value member to select which column from the table to give you the selected values.

If you have further questions, give it a try and ask.
0
 

Author Comment

by:mrong
ID: 9620693
Hi TheAvenger,

Thank you anyway:)

Mark
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:mrong
ID: 9626797
All you need to do is modified the code for SelectedIndexChanged. Here is my code, but you might find other better way to do it.

private void zone_SelectedIndexChanged(object sender, System.EventArgs e)
            {
                  bldg.Items.Clear();
                  
                  string sql4;
                  DataSet MyDataSet5 = new DataSet();  
                  sql4 = "SELECT DISTINCT BLDG";
                  sql4 += " FROM ROOT.AE_S_BLD_C";
                  sql4 += " WHERE REGION_CODE =('"+campus.Text+"') AND FAC_ID=('"+zone.Text+"')";
            sql4 += " ORDER BY BLDG";

                  OleDbConnection myConn4 = oleDbConnection1;  
                  OleDbCommand myComm4 = new OleDbCommand();
                  myComm4.Connection = myConn4;
                  myComm4.CommandText = sql4;

                  OleDbDataAdapter myAdap4 = new OleDbDataAdapter(myComm4);
                  myAdap4.Fill(MyDataSet5);
           
                  
                  
                  foreach (DataRow myRow in MyDataSet5.Tables[0].Rows)
                  {
                  
                        bldg.Items.Add(myRow["BLDG"]);

                  }

                  
                  myConn4.Close();
            }
0
 
LVL 20

Expert Comment

by:TheAvenger
ID: 9626840
The way I showed you is much more '.NET like' and is also much more efficient if I start playing with the combo boxes. It also needs only one connection to the database
0
 
LVL 20

Expert Comment

by:TheAvenger
ID: 9629209
I have supplied an answer that solves the problem the moment when mrong decided to stop it. I have also explained what is the added value and advantage of my solution over the one he presented. On my opinion the question should not be closed with PAQing as a good solution that can be used by the author was supplied.
0
 

Author Comment

by:mrong
ID: 9633396
I haven't got a chance to try TheAvenger's solution and I am working on something else. Please give me a couple of days to do so. I have no problem for giving points to the people who provide the best solution.

Thanks.
0

Featured Post

SharePoint Admin?

Enable Your Employees To Focus On The Core With Intuitive Onscreen Guidance That is With You At The Moment of Need.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Summary: Persistence is the capability of an application to store the state of objects and recover it when necessary. This article compares the two common types of serialization in aspects of data access, readability, and runtime cost. A ready-to…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question