linq到sql更新多行
本文关键字:更新 sql linq | 更新日期: 2023-09-27 18:25:16
我正在尝试使用linq将sql表更新为sql:
使用Linq-to-SQL查询数据库我能够将数据加载到WPF应用程序的UI中的网格视图中。因此,我有一个与每一行相关联的复选框。该表有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类时创建的。因此,我试图更新inturn向DB提交更改的同一列表。
问题:我可以根据网格视图中选定的复选框选择行,并且可以循环浏览选定的项目,但无法更新所有选定的行。。只有少数人在更新。。。如果有人能查看代码,并在查询有任何问题时为我提供指导,我将非常高兴。
最终,我必须根据网格视图的Ability列中的当前值更新所有选中的行。
下面是一篇关于使用LINQ to SQL进行批量更新和删除的好文章http://www.aneyfamily.com/terryandann/post/2008/04/Batch-Updates-and-Deletes-with-LINQ-to-SQL.aspx
也许这会给你一个想法或指针。。。
DataDataContext dc=new DataDataContext();需要移动到foreach循环之外。目前它不应该编译,因为它超出了范围。我不明白你是如何将所选项目链接到从数据集中提取的项目的,你只是提取第一个?你的物品有身份证吗?