我的表单中有一个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();
}
看起来您的for循环中有一个错误:“ s”仅包含checkListBox中最后检查的项目。尝试像这样更改它:
s += "'" + checkedListBox1.CheckedItems[x].ToString() + "',";