温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - Select data from Datagridview using checkedlistbox
c# sql

c# - 使用复选框列表从Datagridview中选择数据

发布于 2020-03-28 23:20:29

我的表单中有一个datagridview,还有一个清单框。我已经编写了一些代码,以便可以使用清单列表中选中的内容过滤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();
}

查看更多

查看更多

提问者
Joe Carter
被浏览
17
VDN 2020-01-31 17:38

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

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