我目前正在使用 C# 和 MySQL 数据库后端开发应用程序。
我的程序最终可能会从数据库中加载大量数据并将其添加到要在 DataGridView 中显示的数据集中。我希望能够显示数据集的填充进度,但不确定如何获取它在数据库中的位置的引用。
下面是我目前拥有的代码。
DatabaseWork dbase = new DatabaseWork();
try
{
dbase.openConnection();
MySqlDataAdapter myDA = new MySqlDataAdapter();
myDA.SelectCommand = new MySqlCommand(query, dbase.conn);
DataTable table = new DataTable();
myDA.Fill(table);
BindingSource bSource = new BindingSource();
bSource.DataSource = table;
tblDetails.DataSource = bSource;
//tblGrid.Columns[0].Visible = false;
}
catch (MySqlException ex)
{
dbase.displayError(ex.Message, ex.Number);
}
finally
{
dbase.closeConnection();
}
我知道我必须将这部分代码像后台 worker 一样放入线程中,但我如何更改此代码以显示进度。
最佳答案
这个答案可能来得有点晚,但也许对其他人有帮助。
在许多情况下,显示到目前为止读取的记录数就足够了。这可以通过处理 DataTable.RowChanged 事件来完成。从我可以验证的测试实现中,DataAdapter.Fill-Method 添加的每一行都会触发事件。在处理事件时,您可以通过查看 DataTable.Rows.Count-Property 来获取读取的记录数
我通常做的是在后台线程中读取数据,更新标签或列表框条目。实际更新 gui 的方法缓冲对标签的更新,以便 gui 每秒仅更改一次以防止闪烁。
希望这对您有所帮助。
萨沙
关于c# - 显示从 MySQL 填充数据集的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135650/