私は学生で、プログラミングの初心者です。combobox1とcombobox2の2つのコンボボックスがあります。combobox1にはnokia、samsung、htcなどのモバイル会社が含まれ、combobox2にはsamsung、s3などのモバイルモデルが含まれています。つまり、2つのコンボボックスを並べ替えたいと思います。 combobox1でnokiaをクリックすると、nokiaのすべてのモデルがcombobo2のリストに表示されるはずなので、外部キーの関係を使用することにしました。
Manufacturer -table
- manufacturerid (primary key)
- name
Model -table
- modelid (primary key)
- manufacturerid (foreign key to manufacturer)
- name
データの例:
メーカー表
manufacturerid name
-------------- ----------
1 Nokia
2 Samsung
3 HTC
モデルテーブル
modelid manufacturerid name
------- -------------- ----------
1 1 C7
2 1 Lumia 900
3 1 Lumia 920
4 2 Galaxy S II
5 2 Galaxy S III
6 3 Desire X
7 3 Windows Phone 8X
8 3 One S
最初のコンボボックスでnokiaを選択すると、2番目のコンボボックスでmanufactureid =1のすべてのモデルが選択されます。どうやってやるの?もともと私は使っていました
private void comboBox4_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox3.Text = "";
if ("samsung" == comboBox4.SelectedItem.ToString())
{
comboBox3.DataSource = table1BindingSource;
comboBox3.ValueMember = "samsung";
comboBox3.DisplayMember = "samsung";
}
if ("htc" == comboBox4.SelectedItem.ToString())
{
comboBox3.DataSource = table1BindingSource;
comboBox3.ValueMember = "htc";
comboBox3.DisplayMember = "htc";
}
}
しかし、新しいモデルを追加するたびにsamsung文字列を更新する必要があるため、テーブルを操作して更新できるようにすることにしました。