我正在尝试使用linq更新sql表到sql:
使用Linq to SQL查询数据库我可以将数据加载到WPF应用程序的UI中的gridview中。所以我有一个与每行相关联的复选框。该表具有EmpName和Ability两列。因此,当用户检查与行/行关联的复选框时,我必须在sql DB中更新表中的值。
以下是我选中复选框的代码:
private void EmployeeName_Checked(object sender, RoutedEventArgs e)
{
DataDataContext dc = new DataDataContext();
foreach (var item in empListView.SelectedItems)
{
EmpList updateList = (from p in dc. EmpList
where p.able == No
select p).FirstOrDefault();
if(updateList.able==NO)
updateList.able = YES;
}
dc.SubmitChanges();
empListView.ItemsSource = dc.EmpLists.ToList();
}
这里的EmpList是我从设计器添加linqtosql类时创建的。所以我试图更新同一个列表,该列表将更改提交给数据库。
问题:我可以根据gridview中选中的复选框选择行,我可以遍历所选的项目,但是我无法更新所有选定的行...只有少数正在更新...如果有人可以查看代码并指导我,如果查询有任何问题,我会很高兴。
最终,我必须根据gridview的colum Ability中的当前值更新所有选定的行。
答案 0 :(得分:0)
这是一篇关于使用LINQ to SQL进行批量更新和删除的好文章 http://www.aneyfamily.com/terryandann/post/2008/04/Batch-Updates-and-Deletes-with-LINQ-to-SQL.aspx
也许这会给你一个想法或指针......
答案 1 :(得分:0)
DataDataContext dc = new DataDataContext();需要移动到foreach循环之外。目前它不应该编译,因为它超出了范围。我不明白你是如何将所选项目链接到你从数据集中提取的项目,你只是拉第一个?您的商品是否有ID或要抓取的东西?