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到sql更新多行

下面是一篇关于使用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循环之外。目前它不应该编译,因为它超出了范围。我不明白你是如何将所选项目链接到从数据集中提取的项目的,你只是提取第一个?你的物品有身份证吗?