如何更新DataGridView实时执行



My DataGridView显示在另一个系统上输入的信息。当用户插入、更新或删除任何信息时,DataGridView应该立即更新
我考虑过使用递归方法或线程背景,但没有帮助
我的代码是:

private void Andon_Load(object sender, EventArgs e)
{
    LoadGrid();
}
private void LoadGrid()
{
    DataTableWorkCall cdtwc = new DataTableWorkCall();
    DataTable dtPBList = new DataTable();
    dtPBList = cdtwc.CreatePendingWorkCall();
    DataTableWorkCall.GetDataTableNew = dtPBList;

    if (DataTableWorkCall.GetDataTableNew != DataTableWorkCall.GetDataTableOld)
    {
        if (DataTableWorkCall.GetDataTableNew.Rows.Count > 0)
        {
            DataTableWorkCall.GetDataTableOld = DataTableWorkCall.GetDataTableNew;
            if (this.WindowState == FormWindowState.Minimized)
                this.WindowState = FormWindowState.Normal;
            DataView dv = new DataView(DataTableWorkCall.GetDataTableNew);
            dv.Sort = "workCallOpenDate DESC";
            dgvAndon.DataSource = dv;
            lblRefreshDate.Text = "Atualizado em: " + DateTime.Now;
            existData = true;
        }
        else
        {
            if (this.WindowState == FormWindowState.Normal)
                this.WindowState = FormWindowState.Minimized;
            music.Clear();
            music.StopSound();
            lblRefreshDate.Text = "Atualizado em: " + DateTime.Now;
            existData = false;
        }
        this.Activate();
        //LoadGrid();
    }
    else
    {
        if (this.WindowState == FormWindowState.Normal)
            this.WindowState = FormWindowState.Minimized;
        lblRefreshDate.Text = "Atualizado em: " + DateTime.Now;
        existData = false;
        LoadGrid();
    }
}

这不管用,有人能帮我吗?

最简单的方法(正如shahid Iqbal所说)是使用计时器,并在指定的时间间隔将数据网格视图重新绑定到数据源,但用户可能没有更改相关的数据源。

但是,如果你想要一个更稳健的方法,可以看看下面的:

实时DataGridView?

正如您所看到的,实现此功能需要一些时间。

最新更新