我通过Visual Studio中的数据源添加了一个MySQL数据库。然后我将我想要的表拖放到我的表单设计中,并将布局更改为适合此处和那里。
我有一个后台工作者偶尔使用MySQL连接器将数据插入数据库。我一直在尝试刷新datagridview以反映插入到数据库中的更改,但我无法让表单更新以显示新数据。
从有类似麻烦的人那里读了几个问题我试过了:
根据此问题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的白色方块
按此处http://msdn.microsoft.com/en-us/library/f61k6akt.aspx
调用重置方法this.mcbrideDataSet.Reset();
this.rfidBindingSource.ResetBindings(false);
这给了我一个Windows.Forms.CurrencyManager.getItem
重新加注和刷新
this.rfidTableAdapter.Fill(this.mcbrideDataSet.rfid);
this.rfidDataGridView.PerformLayout();
this.rfidDataGridView.EndEdit();
this.rfidDataGridView.Refresh();
this.rfidDataGridView.Parent.Refresh();
我尝试了以上所有其他一些变体。
由于很多这些数据都是由Visual Studio在Designer.cs中自动生成的,我试过跟踪数据定义和引用,看看我是否能在那里找到任何有用的东西,但我对C#有足够的新意我没有到达任何地方。我无法看到连接字符串的位置或dataSource获取数据的位置。我发现它是声明,但不是从数据库中分配值的地方。
非常感谢任何帮助。
答案 0 :(得分:0)
我认为你需要在网格视图发生变化后绑定它。
rfidDataGridView.DataBind();
答案 1 :(得分:0)
DataGridView.BindingContext = new BindingContext();