【问题标题】:how to refresh the datagridview when new rows has been added添加新行后如何刷新datagridview
【发布时间】:2013-01-18 15:06:11
【问题描述】:

嗨,我是 c# 的学生,在 winform 中工作我在这里遇到问题,用新值刷新 datagridview 我有一个主窗体,其中我有一个 datagridview,datagridview 中的数据填充了代码

我有第二个表单,它从主表单上的一个按钮调用为showdialog,主表单在后面运行,第二个表单上还有一个按钮,即提交按钮。从那时起,第二个表单上有一些控件,数据被插入到数据库表中,该表连接到主表单的datagridview,所以我希望在打开第二个表单并填充数据时,然后按下提交按钮在this.hide();之后,当主窗体可见时,提交的数据应该在datagridview中 我已经搜索并发现更改数据源会导致 datagridview 刷新新数据,所以我尝试了这个

MAINSOFTWARE ms = new MAINSOFTWARE();
                ms.dataGridView1.DataSource = null;
                ms.dataGridView1.DataSource = ms.bindingSource1;
                this.Hide();

但它没有用新提交的数据刷新gridview,所以现在有什么方法可以刷新吗?

【问题讨论】:

  • 不存在绑定问题,因为在表单加载时会填充上述数据网格视图。表示代码在加载事件中,所以当我关闭表单时,下次加载后数据在 datagridview 中得到更新。在这种情况下,我必须关闭主窗体并启动它。我不想要的
  • 您可以重新运行数据库查询,也可以调用 SqlDependency 类在底层数据库表更改时自动刷新网格。
  • glace 你能夸大你所说的吗?我是新手。几个月前开始使用c#。对不起,我不明白
  • 我的意思是,当您需要将数据从表同步到网格时,您可以重新运行选择数据的数据库查询。您可以使用 SqlDependency 类完成相同的操作,但不建议将其用于大规模部署:msdn.microsoft.com/en-us/library/a52dhwx7%28v=vs.80%29.aspx

标签: c#


【解决方案1】:

当您应该处理原始实例时,您正在创建 MainForm 的新实例

您可以在第二个窗体中创建一个Datatable 属性,并在其关闭时将Datatable 绑定到主窗体中的DataGridView

此代码应该在您的 MainForm 中的按钮单击事件处理程序中:

SecondForm.ShowDialog();

//After closing the SecondForm

this.DataGridView1.DataSource = SecondForm.MyDatatable();

在 SecondForm 中声明 DataTable 属性:

private DataTable _MyDatatable = new DataTable ();

    public DataTable  MyDatatable
    {
        get {
            return _MyDatatable ; 
        }
        set { 
            _MyDatatable = value; 
        }
    }

【讨论】:

  • 那么我可以在这里做什么?你能告诉我一些在不退出主窗体并下次加载的情况下刷新数据的技术吗?我想在隐藏第二个窗体后用新值加载 datagridview。那我该怎么办?
  • 第二种形式的数据表属性?如何?你能告诉我吗?先生,您的回答会重新启动主表单吗?
  • 看看我编辑的答案。只需在 SecondForm 中声明 DataTable 属性即可。进行数据操作并更新您的DataTable。关闭 SecondForm 后,将 DataTable 分配给 DataGridView 数据源,如上所示。
  • 先生,您的回答是正确的。但是您是否回答创建主窗体的新实例?意味着当第一个表单被加载然后在按钮点击新的第二个表单加载然后在关闭第二个表单之后,你正在创建一个主表单的新实例?对吧,先生?
  • 您不需要重新启动主窗体。如果您在 MainForm 中实例化 SecondForm,那么 MainForm 应该仍然是打开的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 2013-01-28
相关资源
最近更新 更多