我目前正在使用 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();
}
我知道我必须像后台工作人员一样将这部分代码放入线程中,但如何更改此代码以显示进度。
这个答案可能来得有点晚,但也许对其他人有帮助。
在许多情况下,显示到目前为止已读取的记录数就足够了。这可以通过处理 DataTable.RowChanged 事件来完成。从测试实现中,我可以验证该事件是否为 DataAdapter.Fill-Method 添加的每一行触发。处理事件时,您可以通过查看 DataTable.Rows.Count-Property 来获取读取的记录数
我通常做的是读取后台线程中的数据,以更新标签或列表框条目。实际更新 gui 的方法会缓冲标签的更新,以便 gui 更改每秒仅发生一次,以防止闪烁。
希望这可以帮助。
Sascha
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)