【发布时间】:2025-12-04 04:30:01
【问题描述】:
我正在使用以下函数来填充我的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.之后,我在 Selectedindexchanged 事件中使用相同的函数来填充另一个 ComboBox:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
FillDropDownList("select StateCode,StateName from States Where CountryCode = '" + comboBox1.SelectedValue + "'", comboBox2, "StateCode", "StateName");
}
对于两个组合框的人口来说,一切都很好,但问题就在这里 如图所示,我有两个组合框:
所以第一个组合框(国家)完美加载到表单中 但是我要做的是仅在我选择国家/地区时才从数据库中选择第二个组合框( state )但是发生的情况是代码运行并且第二个组合框会从数据库中选择所选择的内容第一个组合中的索引如图所示
所以我基本上想要做的是只有当我从第一个组合框中选择一个索引时才填充第二个组合。
【问题讨论】: