我想在包含绑定(bind)到 MySQL 数据库的 DataGridView 对象的表单上提供“刷新”按钮。通过“新建”MySQLCommand、MySQLDataAdapter、MySqlCommandBuilder 和 DataSet 对象并重新运行查询并将绑定(bind)源重新加载到 DataGridView 对象,我获得了没有从具有计算字段的查询填充的列的屏幕。
对于那些具有计算列的人来说,这不起作用。
当然,必须有某种方法可以从数据库重新加载 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,因此我将当前行和单元格保存到一个点,然后在数据刷新后将焦点设置回来。
最佳答案
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
关于c# - 刷新DataGridView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18262610/