[英]C# Multiple comboBoxes used in MySQL Where
我正在嘗試學習將 MySQl 與 C# 一起使用,因此我創建了允許對表進行排序和添加數據的應用程序。
那是我用來顯示僅由我的 comboBox_1 值選擇的項目的代碼。 但現在我想添加第二個組合框並顯示滿足這兩個條件的數據。 問題是我不知道如何到達那里。 我想使用多個 ifs 檢查組合框是否選擇了任何項目,但我的代碼看起來很可怕。
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(comboBox1.SelectedIndex >= 0)
{
MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM narzedzia.narzedzia where status='" + comboBox1.Text + "'", Program.connection);
if (Program.connection.State == ConnectionState.Closed) { Program.connection.Open(); }
DataSet ds = new DataSet();
adapter.Fill(ds, "narzedzia");
dataGridView1.DataSource = ds.Tables["narzedzia"];
Program.connection.Close();
}
}```
我通常從一個基本的選擇語句開始(我使用 where 1 = 1 所以我可以在滿足我的條件時開始添加和語句)
所以也許是這樣的
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM narzedzia.narzedzia where 1 = 1 ");
if(comboBox1.SelectedIndex >= 0){
adapter.SelectCommand = adapter.SelectCommand + " and status = @status ";
adapter.SelectCommand.Parameters.AddWithValue("@status", comboBox1.Text );
}
if(comboBox2.SelectedIndex >= 0){
adapter.SelectCommand = adapter.SelectCommand + " and color = @color ";
adapter.SelectCommand.Parameters.AddWithValue("@color", comboBox2.Text );
}
DataSet ds = new DataSet();
adapter.Fill(ds, "narzedzia");
dataGridView1.DataSource = ds.Tables["narzedzia"];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.