簡體   English   中英

Linq to SQL:在SubmitChanges不起作用后更新dataGridView

[英]Linq to SQL: Updating dataGridView after SubmitChanges isn't working

我第一次使用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實例。

嘗試

dataGridView2.DataSource = null;

之前

dataGridView2.DataSource = b;

在分配之前,還嘗試將數據轉換為列表。

b.DataSource = (from eq in db.equipments
                select eq).ToList();

也許這有助於你

https://www.devexpress.com/Support/Center/Question/Details/Q142798

例:

var orders = DBInterface.dcAPI.OrderInfos;
var b = orders.GetNewBindingList();
dgOrders.ItemsSource = b;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM