首页 > 解决方案 > 使用checkedlistbox从Datagridview中选择数据

问题描述

我的表单中有一个datagridview,还有一个checkedlistbox。我编写了一些代码,以便我可以使用选中列表框中选中的任何内容来过滤 datagridview。虽然,它一次只会过滤一个,而我希望能够过滤任何被检查的数据。有没有解决的办法?

代码:

if (checkedListBox1.CheckedItems.Count != 0)
{
    string s = "";
    int x;
    for (x = 0; x <= checkedListBox1.CheckedItems.Count - 1; x++)
    {
        s = "'" + checkedListBox1.CheckedItems[x].ToString() + "',";
    }

    s = s.Substring(0, s.Length - 1);
    toolStripDropDownButton7.Text = s;

    con.Open();
    string query = "select * from Leads where Status in (" + s + ")";
    SqlCommand cmd = new SqlCommand(query, con);
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    sda.Fill(dt);
    dataGridView4.DataSource = dt;
    con.Close();
}

标签: c#sql

解决方案


看起来您的 for 循环中有错误:“s”仅包含 checkListBox 中的最后一个检查项。尝试像这样更改它:

s += "'" + checkedListBox1.CheckedItems[x].ToString() + "',";

推荐阅读