如何在更新数据库时不断更新DataGridView

时间:2018-05-05 17:34:00

标签: c# nhibernate datagridview

我正在开发一个使用NHibernate与SQL Server通信的程序,并在DataGridView中显示一个表。

这是我初始化DataSource的方式:

private void UpdateDatabaseBindings()
{
    if (InvokeRequired)
    {
        InvokeUI(UpdateDatabaseBindings);
        return;
    }

    using (var session = NHibernateHelper.OpenSession())
    {
        dbPeople.DataSource = session.QueryOver<Person>().List();
    }
}

当表单打开时,它可以工作。数据显示正确:

It works correctly on open.

但是,当我手动更新数据库(使用SSMS)时,数据不会更新(自然)。因此,我创建了一个运行Timer的每秒运行的UpdateDatabaseBindings(),以便再次拉取数据并更新UI。 但是,这会“重置”DataGridView,带来一些令人讨厌的副作用:选择丢失,正在编辑的任何文本都被取消,滚动也会被重置。

有没有办法在不重置DataSource的情况下更新DataGridView?

0 个答案:

没有答案