ListView未在运行时显示更新

时间:2012-11-27 10:02:28

标签: c# winforms visual-studio-2010 linq linq-to-sql

我在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();    

1 个答案:

答案 0 :(得分:1)

从评论中复制以澄清答案:

调用方法时,context.StuBasics是否从数据库更新了?您需要确保更新此变量中的数据。

如果仅在加载应用程序时填充context.StuBasics,则此处发出问题。每次使用DB执行操作时,都需要确保调用它的更新。由于样本中的LINQ非常精细,并且alays从context.StuBasics

中检索最新数据