我已通过 Visual Studio 中的数据源添加了 MySQL 数据库。然后,我将所需的表格拖放到表单设计中,并更改布局以适合各处。
我有一个后台工作人员,偶尔使用 MySQL 连接器将数据插入数据库。然后,我一直尝试刷新 datagridview 以反射(reflect)插入数据库中的更改,但我无法更新表单以显示新数据。
阅读了我尝试过的遇到类似问题的人提出的一些问题:
根据此问题重新绑定(bind)数据源 Refreshing a DataGridView after DB has changed? 还有这个http://social.msdn.microsoft.com/Forums/vstudio/en-US/a1cf64de-6e35-435c-943c-ed6e9b39525b/how-to-refresh-datagridview-component-using-designer?forum=csharpgeneral
this.rfidDataGridView.DataSource = null; this.rfidDataGridView.Rows.Clear(); this.rfidDataGridView.DataSource = this.rfidBindingSource;
这会导致 datagridview 变成一个带有 X 的白色方 block
按照此处调用重置方法 http://msdn.microsoft.com/en-us/library/f61k6akt.aspx
this.mcbrideDataSet.Reset(); this.rfidBindingSource.ResetBindings(false);
这在 Windows.Forms.CurrencyManager.getItem 处给了我一个 SystemOutOfRangeException
补充和提神
this.rfidTableAdapter.Fill(this.mcbrideDataSet.rfid); this.rfidDataGridView.PerformLayout(); this.rfidDataGridView.EndEdit(); this.rfidDataGridView.Refresh(); this.rfidDataGridView.Parent.Refresh();
我尝试了上述所有方法的一些其他变体。
由于 Visual Studio 在 Designer.cs 中自动生成了许多此类数据,因此我尝试遵循数据定义和引用,看看是否可以在其中找到任何有用的内容,但我对 C# 还很陌生。我一事无成。我看不到连接字符串在哪里,也看不到数据源从哪里获取数据。我找到了它的声明,但没有找到它从数据库中分配值的位置。
任何帮助将不胜感激。
最佳答案
我认为您需要在 GridView 更改后绑定(bind)它。
rfidDataGridView.DataBind();
关于c# - 刷新通过设计器添加的datagridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21606653/