linq to sql update more rows

时间:2012-02-21 20:57:16

标签: c# wpf linq-to-sql

我正在尝试使用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中的当前值更新所有选定的行。

2 个答案:

答案 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或要抓取的东西?