在另一个对话框将数据插入 DB 后刷新 DataGridView

Posted

技术标签:

【中文标题】在另一个对话框将数据插入 DB 后刷新 DataGridView【英文标题】:Refresh DataGridView after data inserted in DB by another dialog 【发布时间】:2012-06-17 21:43:56 【问题描述】:

在我的 Winforms 应用程序中,我有一个主窗体,其中 DataGridView 绑定到数据库实体数据源。

网格设置为不允许插入。相反,我在我的表单上有一个按钮,它会启动插入发生的第二个对话框(即,使用比 DataGridView 更友好的 ui)。

插入工作正常。在 db 中查询基础表显示记录已插入。但是,我似乎无法让主窗体上的 DataGridView 来查看第二个对话框刚刚创建的新数据。

我已经阅读了许多 Stack Overflow 问答并尝试了各种解决方案来让 DataGridView 刷新以显示新数据。但没有任何效果。

这一定是常见的情况??有人可以推荐一些可行的 VB.NET 代码吗?

谢谢,

巴扎

    Dim qry = From o In mDB.tblFOMTestResults From p In mDB.tblProduct.DefaultIfEmpty _
                                              From c In mDB.tblCalibration _
                Where o.ProductID = p.ID And o.CalibrationID = c.ID _
                Order By o.RunDate, p.ProductName Select _
                o.ID, o.SampleCode, o.RunDate, o.ConditioningDays, o.ConditioningRHAndTemp, _
                o.TestArea, o.EdgeSeal, o.SealedBags, o.FaceSeal, _
                o.MoisturePercentage, o.CalibrationID, o.FYFOMH1, o.FYFOMH2, o.FYFOMH3, _
                o.FYFOMH4, p.ProductName, o.ProductID

    Me.TblFOMTestResultsDataGridView.DataSource = qry

【问题讨论】:

请贴出绑定的代码。 感谢努迪尔的回复。已添加绑定代码 - 请参见上文。 【参考方案1】:

尝试绑定到查询的结果而不是查询:

dataGridView.Source = query.Execute(MergeOption.AppendOnly);

【讨论】:

嗨,我的查询没有 Execute 方法?? (如果有帮助,我正在使用 .NET 4.0?)。感谢您回复雅各布。 ObjectQuery.Execute Method.【参考方案2】:

在尝试了很多事情之后,我终于按照以下 SO 答案的建议完成了这项工作。Refresh DataGridView in Windows form

【讨论】:

以上是关于在另一个对话框将数据插入 DB 后刷新 DataGridView的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一页面的事件中重新加载或刷新一个页面的存储数据

jQuery:在另一个 jquery 操作后刷新 div?

Laravel 8 和 Ajax - 将数据插入表中总是刷新加载

在 postgresql 中插入 ... 值( SELECT ... FROM ... )?

我怎么能在另一个小部件中使用 QColorDialog 而不是单独的对话框?

MySQL将失败记录插入另一个表