如何更新DataGridView实时执行? C#

时间:2013-07-25 13:21:13

标签: c# multithreading datagridview

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

    }

这不起作用,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

执行此操作的最简单方法(如Shahid Iqbal所述)是使用计时器并在指定的时间间隔将datagridview重新绑定到数据源,但用户可能没有更改相关的数据源。

但如果你想要一个更强大的方法,请看下面的内容:

Real-Time DataGridView?

如您所见,实现此功能需要一些时间。