【问题标题】:Refreshing DataGridView?刷新 DataGridView?
【发布时间】:2013-08-18 05:28:39
【问题描述】:

我想在包含绑定到 MySQL 数据库的 DataGridView 对象的表单上提供“刷新”按钮。通过“新建”MySQLCommand、MySQLDataAdapter、MySqlCommandBuilder 和 DataSet 对象并重新运行查询并将绑定源重新加载到 DataGridView 对象,我得到了没有从具有计算字段的查询填充的列的屏幕。

对于那些有计算列的,这不起作用。

当然,必须有某种方法可以从 DB 中重新加载 DataGridView 对象。

我将 SharpDevelop C# 5 与 .NET framework 4.0、MySQL Community Server 5.3.33 和 MySQL Data Connector/.NET V 6.7.4 一起使用

非常感谢任何潜在客户!


杰西和布莱恩,

我正在做 WinForms - 抱歉不清楚。我刚刚制定了一个解决方案。首先,仅执行初始加载中运行的内容是不够的。我发现必须“新建”MySqlCommand、MySQLDataAdapter、MySqlCommandBuilder 和 DataSet 对象,然后像加载表单一样运行数据提取。此外,在做任何看起来或闻起来像“编辑”的事情时不能调用它,否则会抛出异常。我希望我的表单在编辑后刷新,所以我在表单上放置了一个计时器并在 RowValidated 事件结束时启用它,并让计时器调用 ReloadGrid 例程。另外,如果用户打开,比如第 822 行,我发现焦点转到第 0 行和第 0 单元格,所以我将当前行和单元格保存到一个点,然后在数据刷新后重新设置焦点。

【问题讨论】:

标签: c# mysql .net


【解决方案1】:
private void BindGrid(){
//retrieve data

//bind
DataGridView.DataSource = dataSource;
DataGridView.DataBind();
}

//call BindGrid() anytime you need to refresh data, for example in a button event click handler

【讨论】:

  • DataGridView 是 Winforms 控件,没有 DataBind 方法 msdn.microsoft.com/en-us/library/…
  • 那么你为什么不这么说哈哈。您应该始终声明您使用的是 WinForms,否则大多数情况下会假定您使用的是 WebForms。
猜你喜欢
  • 2012-01-02
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多