我有一个checkListBox
会检查列中的项目,如果是真的,我想将SQL列中的项目添加到listBox
中,但是它将列中的所有值添加到我的{ {1}}
这是我的桌子:
这是我的代码:
listBox
这是结果:
我希望它具有与选中项匹配的单个值。
答案 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);
}
}
}
}