我與第一個填充組合框與我的SQL數據庫中的表兩種功能,這一點,如下所示:變化組合框的值另我
private void FillCombo()
{
comboBox1.Items.Clear();
try
{
string connectionString = "Data Source=LPMSW09000012JD\\SQLEXPRESS;Initial Catalog=Pharmacies;Integrated Security=True";
using (SqlConnection con2 = new SqlConnection(connectionString))
{
con2.Open();
string query = "SELECT * FROM INFORMATION_SCHEMA.TABLES ";
SqlCommand cmd2 = new SqlCommand(query, con2);
SqlDataReader dr2 = cmd2.ExecuteReader();
while (dr2.Read())
{
int col = dr2.GetOrdinal("TABLE_NAME");
comboBox1.Items.Add(dr2[col].ToString());
}
comboBox1.SelectedIndex = 0;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
而且,我還有一個被填充第二個comboBox基於前一個函數的組合框的值。這是下面
async void fillLiguanea()
{
comboBox2.Items.Clear();
try
{
string connectionString = "Data Source=LPMSW09000012JD\\SQLEXPRESS;Initial Catalog=Pharmacies;Integrated Security=True";
SqlConnection con = new SqlConnection(connectionString);
con.Open();
string query = "SELECT * FROM " + comboBox1.Text;
SqlCommand cmd = new SqlCommand(query, con);
var reader = await cmd.ExecuteReaderAsync();
comboBox2.BeginUpdate();
while (reader.Read())
{
string scode = reader.GetString(reader.GetOrdinal("code"));
comboBox2.Items.Add(scode);
}
comboBox2.EndUpdate();
comboBox2.SelectedIndex = 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}}
什麼我試圖做的就是刷新「fillLiguanea」功能的組合框基於「fillCombo」功能選擇的表值了。例如。如果在我的組合框中有由「fillLiguanea」填充的名稱爲「cat」和「dog」的表格,那麼當選擇它時,它應該自動更改由「fillLiguanea」填充的各種貓或狗品種的組合框。
我在看書,看到了一些關於SelectionChangeCommitted事件。這是要走的路還是有更好的方法來做到這一點?
我已經通過刷新按鈕針對我的第二個組合框來實現這一點,但我寧願消除用戶
是啊,我只是使用下列事件之一「SelectionChangeCommitted」或「的SelectedIndexChanged」或「SelectedValueChanged」。請注意,清除組合框不會引發上述任何事件。 – RoyalPotato
我將如何去包括它?我不知道它的實施 – Jevon
我有'如果(comboBox1.SelectionChangeCommitted ==)' 我不知道我是什麼測試@RoyalPotato – Jevon