我使用下面的函數來填充我ComboBox
一個ComboBox人口問題
public static void FillDropDownList(string Query, System.Windows.Forms.ComboBox DropDownName, string AValue, string Adisplay)
{
string Value = AValue;
string display = Adisplay;
using (var CONN = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Test.accdb;"))
{
CONN.Open();
DataTable dt = new DataTable();
try
{
OleDbCommand cmd = new OleDbCommand(Query, CONN);
OleDbDataReader myReader = cmd.ExecuteReader();
dt.Load(myReader);
}
catch (OleDbException e)
{
MessageBox.Show(e.ToString());
return;
}
DropDownName.DataSource = dt;
DropDownName.ValueMember = Value;
DropDownName.DisplayMember = display;
}
}
而且我稱其爲負載形式:
private void Form1_Load(object sender, EventArgs e)
{
FillDropDownList("select CountryCode,Countryname from Countries", comboBox1, "CountryCode", "Countryname");
}
2.After我使用在Selectedindexchanged事件中使用相同的函數來填充另一個組合框:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
FillDropDownList("select StateCode,StateName from States Where CountryCode = '" + comboBox1.SelectedValue + "'", comboBox2, "StateCode", "StateName");
}
並且兩個組合框的一切的人口工作正常,但這裏的問題 我有兩個組合框的如圖所示的圖:
所以TE第一組合框(國家)加載完美的形式 但我我試圖做的是僅在選擇國家時才從數據庫中選擇第二個組合框(狀態),但是發生的是代碼運行並且第二個組合框從數據庫中選擇,並且從數據庫中選擇第一個組合如圖所示
所以我基本上想要做的是讓第二個組合僅在我從第一個組合框中選擇一個索引時才被填充。