簡體   English   中英

C# MySQL 中使用的多個組合框 Where

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM