0

我在 C# Windows 窗体应用程序中使用 Linq to SQL 进行数据库操作。当用户对数据库进行任何更新时,我正在尝试更新 ListView 数据。我已经尝试过获取更新的方法listView.BeginUpdate(),但 ListView 更新的数据现在显示在 ListView 中。当我重新启动应用程序时,它会显示该数据。我尝试调试,数据库在我调用之前得到更新,但 Linq 查询有较旧的数据。为什么 Linq 查询显示旧数据?这是代码。listView.Refresh()listView.EndUpdate()refreshListView()

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 回答