C# Windows フォーム アプリケーションでのデータベース操作に Linq to SQL を使用しています。ユーザーがデータベースで更新を行ったときに、ListView データを更新しようとしています。listView.BeginUpdate()
, listView.Refresh()
,メソッドで更新を取得しようとしましlistView.EndUpdate()
たが、ListView で更新されたデータが ListView に表示されるようになりました。アプリケーションを再起動すると、そのデータが表示されます。デバッグを試みましたが、データベースは呼び出す前に更新されrefreshListView()
ますが、Linq クエリには古いデータがあります。Linq クエリが古いデータを表示するのはなぜですか? これがコードです。
studentViewLv.Clear();
studentViewLv.BeginUpdate();
var query = from c in context.StuBasics select c;
studentViewLv.Columns.Add("Ser No", 50);
studentViewLv.Columns.Add("Student Name ", 200);
studentViewLv.Columns.Add("Father's Name", 150);
studentViewLv.Columns.Add("Registration No", 150);
studentViewLv.Columns.Add("Class", 100);
studentViewLv.FullRowSelect = true;
int i = 1;
foreach (var c in query)
{
string[] stu = new string[] { i.ToString(), c.firstName + " " + c.lastName, c.fatherName, c.registrationNo, c.currentClass };
ListViewItem item = new ListViewItem(stu);
studentViewLv.Items.Add(item);
i++;
}
studentViewLv.Refresh();
studentViewLv.Update();
studentViewLv.EndUpdate();