Ich habe zwei Funktionen mit dem ersten einer comboBox mit den Tabellen in meiner SQL-Datenbank füllen, das darunter:Änderung comboBox Werte basierend auf Klick i ein anderen
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());
}
}
Und ich habe ein anderes, das die Füllung zweites ComboBox basierend auf dem Wert aus der Combobox der vorherigen Funktion. Dies ist es unter
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());
}}
Was ist zu tun, ich versuche, die „fillLiguanea“ Funktion des comboBox Wert auf dem Tisch in der „fillCombo“ -Funktion ausgewählt basierend aufzufrischen. Z.B. Wenn es in meiner ComboBox Tabellen mit dem Namen "cat" und "dog" gibt, die mit "fillLiguanea" gefüllt sind, sollte sie bei Auswahl automatisch die comboBox ändern, die von "fillLiguanea" mit den verschiedenen Katzen- oder Hunderassen gefüllt wird.
Ich las und sah etwas über das SelectionChangeCommitted-Ereignis. Ist das der richtige Weg oder gibt es einen besseren Weg?
Ich habe dies durch eine Refresh-Button erreicht, die meinen zweiten comboBox Ziele, aber ich würde die Verwendung von Tasten für den Benutzer
Yup gelöst wurde, würde ich nur eines der folgenden Ereignisse „SelectionChangeCommitted“ oder „SelectedIndexChanged“ oder "SelectedValueChanged". Beachten Sie, dass das Löschen der Combobox keines der oben genannten Ereignisse auslöst. – RoyalPotato
Wie würde ich es aufnehmen? Bin mir nicht sicher über die Umsetzung – Jevon
Ich habe 'if (comboBox1.SelectionChangeCommitted ==)' nicht sicher ist, was – Jevon