如何从sqlite数据库缓存DataGridView行

时间:2016-11-04 19:42:41

标签: c# sqlite datagridview datagrid

我正在使用Sqlite语句从数据库中检索数据,如下所示:

SQLiteConnection sqlConnection;
SQLiteCommand sqlCMD;
SQLiteDataReader sqlReader;
sqlConnection = new SQLiteConnection("Data Source=newlist.db;Version=3;New=False;Compress=True;");
sqlCMD = sqlConnection.CreateCommand();
sqlCMD.CommandText = "SELECT * FROM table_name";
sqlReader = sqlCMD.ExecuteReader();
while (sqlReader.Read())
{
    //do stuff
}

所以要将整个Sqlite表加载到DataDridView(grid_list)中,我在sqlReader.Read()循环

中使用以下语句
grid_list.Rows.Add();
grid_list.Rows[index].Cells[0].Value = sqlReader.GetString(0);
grid_list.Rows[index].Cells[1].Value = sqlReader.GetString(1);
grid_list.Rows[index].Cells[2].Value = sqlReader.GetString(2);

并且它会产生所需的输出但是当涉及大文件时,例如大约100 MB或更高,它会使UI变慢,所以我如何以块的形式显示这些表,就像源代码文本编辑器那样(例如:sublime Text 3)。

总结如下: 如何通过数据库中的块显示DataGridView行块,而不是一次性将所有数据加载到内存中

1 个答案:

答案 0 :(得分:0)

在使用Sqlite数据库作为数据源时,找到了一个完全回答有关虚拟模式的问题的Article,本文附带了一个源代码,可以帮助您实现分类

我找到了另一个article来帮助解决这个问题。