2

初めて 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;
    }

これはテーブルを更新する正しい方法ではありませんか?

4

3 に答える 3

0

試す

dataGridView2.DataSource = null;

dataGridView2.DataSource = b;

また、割り当てる前にデータをリストに変換してみてください。

b.DataSource = (from eq in db.equipments
                select eq).ToList();
于 2013-05-01T16:00:05.027 に答える
0

多分これはあなたを助ける

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

例:

var orders = DBInterface.dcAPI.OrderInfos;
var b = orders.GetNewBindingList();
dgOrders.ItemsSource = b;
于 2017-01-20T11:17:27.943 に答える