c# - Linq 到 SQL : Updating dataGridView after SubmitChanges isn't working

标签 c# sql linq

我第一次使用 LINQ,遇到了一个奇怪的问题。我正在使用 MS SQL 2008。如果我更改一行并 SubmitChanges(),我可以在 SQL Server Management Studio 中看到更改,但是当我查询以使用更新的信息重新填充 dataGridViews 时,我会得到旧版本的数据。

以下是我的数据的更改:

        if (textBox1.Text.Length > 1)
        {
            var query = from eq in db.equipments
                        where eq.SerNo == serial
                        select eq;

            foreach (equipment equip in query)
            {
                equip.Loc = textBox1.Text;
                equip.Owner = "Evisive";
                equip.Status = updatedStatus;
                equip.SystemName = "";
            }

            db.SubmitChanges();
        }

        else
        {
            MessageBox.Show("Enter a Destination");
        }

该部分再次起作用(更改数据库中的数据)。下面是我尝试更新表格的地方(似乎不起作用的部分):

    public void Update_EquipmentGrid()
    {
        BindingSource b = new BindingSource();
        b.DataSource = from eq in db.equipments
                       select eq;
        dataGridView2.DataSource = b;
    }

这不是更新表格的正确方法吗?

最佳答案

想通了。此链接对此进行了解释。

http://msdn.microsoft.com/en-us/library/Bb386982(v=vs.110).aspx

代码应该是:

        InventoryDataContext dba = new InventoryDataContext();

        BindingSource b = new BindingSource();
        b.DataSource = from eq in dba.equipments
                       select eq;

        dataGridView2.DataSource = b;

不知道为什么,但每次更新时都需要创建 DataContext 的新实例。

关于c# - Linq 到 SQL : Updating dataGridView after SubmitChanges isn't working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16320880/

相关文章:

c# - 使用基于子项的 Lambda/Linq 过滤器父集合

c# - 如何设计数据库接口(interface)

c# - LinqDataSource 选择语法

SQL Server : varbinary or int to store a bit mask?

c# - 获取最大元素的索引

c# - DataTable 列值分组和排序

c# - 在 C# 中使用 Excel 双值

c# - datagridView 中的下拉菜单

SQL,OrderBy/GroupBy 问题

sql - SSIS 包 - 循环执行 SQL 任务的不同连接