Datagridview未显示最新数据

时间:2011-01-24 17:57:30

标签: c# datagridview

我有一个datagridview,我绑定到一个源并使用这个方法显示:

    private void tabPage2_Enter(object sender, EventArgs e)
    {
        HostTableList.Clear();

        try
        {
            conn.Open();

            MySqlCommand command = conn.CreateCommand();
            command.CommandText = "SELECT HostName FROM test.hosts";

            MySqlDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                HostTableList.Add(new Hosts(reader["HostName"].ToString()));
            }

            this.dgvHosts.DataSource = HostTableList;
            this.dgvHosts.ReadOnly = true;
            this.dgvHosts.Show();

        }
        catch (Exception ex)
        {
            tbxLog.AppendText("Unable to load table from database. Exception: " + ex.Message);
            tbxLog.AppendText(Environment.NewLine);
        }
        finally
        {
            conn.Close();
        }

    }

我还有另一种方法,当用户填写新主机名并单击“添加”时,该方法会被触发。在这个方法的最后一行,调用上面的方法:

tabPage2_Enter(null, null);

但是,在添加新主机后调用tabPage2_Enter时,DGV不会显示此新主机。我逐步完成了代码,在将DGV绑定到HostTableList之前,该列表包含所有主机,包括新主机,但在我退出表单之前DGV没有显示该主机,并重新运行它。

1 个答案:

答案 0 :(得分:2)

可能DataGrid认为DataSource没有更改,因为引用没有更改。尝试重新创建HostTableList或将dgvHosts.DataSource设置为null然后设置为HostTableList或使用ResetBindings()方法