0

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();    
4

1 に答える 1

1

回答を明確にするためにコメントからコピー:

context.StuBasicsメソッドが呼び出されたときにデータベースから更新されますか? この変数のデータが更新されていることを確認する必要があります。

context.StuBasicsアプリケーションがロードされたときにのみ入力される場合、問題はここにあります。DBでアクションを実行するたびに、更新を呼び出すようにする必要があります。サンプルのLINQは完全に問題なく、alaysは最新のデータを取得しますcontext.StuBasics

于 2012-11-27T10:45:31.567 に答える