如何从SQL表中将checkListbox选中的项目添加到列表框?

时间:2019-02-10 04:55:42

标签: c# sql-server checklistbox

我有一个checkListBox会检查列中的项目,如果是真的,我想将SQL列中的项目添加到listBox中,但是它将列中的所有值添加到我的{ {1}}

这是我的桌子:

enter image description here

这是我的代码:

listBox

这是结果:

enter image description here

我希望它具有与选中项匹配的单个值。

1 个答案:

答案 0 :(得分:1)

这是因为您从不过滤SQL查询来提供所选服务的价格。

假设您有一个Price类,可以从数据库中为Prica表建模,请尝试以下代码:

private void checkListService_ItemCheck(object sender, ItemCheckEventArgs e)
{
    CheckedListBox box = sender as CheckedListBox;

        if (box != null)
        {
            var con = new DBConnection();

            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM price", con.Connection);
            DataSet ds = new DataSet();
            da.Fill(ds, "service");

            var checkedItems = box.SelectedItems;

            var rows = ds.Tables["service"].Rows.AsQueryable().Cast<price>().ToList();

            foreach (var checkedItem in checkedItems)
            {
                var rowsForCheckedItem = rows.Where(x => x.service == ((price)checkedItem).service);

                foreach (var row in rowsForCheckedItem)
                {
                    listBPrice.Items.Add(row.price);
                }
            }
        }
}