У меня есть две функций с первым заполняющим выпадающим с таблицами внутри моей базы данных 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» значение COMBOBOX функции, основанное на таблице, выбранной в функции «fillCombo». Например. если в моем comboBox есть таблицы с именем «cat» и «dog», который заполняется «fillLiguanea», тогда при выборе он должен автоматически изменять comboBox, который заполняется «fillLiguanea» различными кошками или собаками.
Я читал и видел что-то о событии SelectionChangeCommitted. Это способ пойти или есть лучший способ сделать это?
Я достиг этого с помощью кнопки обновления, ориентированной моего второго COMBOBOX, но я предпочел бы исключить использование кнопок для пользователя
Да, я бы просто использовать один из следующих событий «SelectionChangeCommitted» или «SelectedIndexChanged» или "SelectedValueChanged". Обратите внимание, что очистка combobox не приведет к возникновению каких-либо из вышеупомянутых событий. – RoyalPotato
Как бы я включил его? Я не уверен в его реализации. – Jevon
У меня есть 'if (comboBox1.SelectionChangeCommitted ==)' Не уверен, что я тестирую @RoyalPotato – Jevon