【发布时间】:2016-09-09 23:08:39
【问题描述】:
我需要从 SQLite 加载数据,然后在 DataTable 中显示数据以显示在 DataGridView 中。我正在使用的当前方法是从 DataReader 读取数据,然后循环通过 reader.Read() 来创建每个 DataRow。
上述方法的性能很慢,因为我有 600k 行数据行。我曾尝试使用 dataTable.Load(reader),但它甚至比以前慢。有没有最快的方法将 SQLite 中的数据添加到 DataTable 中。
SQLiteCommand command = new SQLiteCommand(sql, connection);
SQLiteDataReader reader = command.ExecuteReader();
while(reader.Read())
{
DataRow dRow = dataTable.NewRow();
dRow[''] = reader[''].ToString();
......
......
......
dataTable.Rows.Add(dRow);
}
【问题讨论】:
-
你的谷歌搜索结果告诉你什么?
-
到目前为止 google 告诉我使用 dataTable.Load(reader),但正如我提到的它比以前慢
-
如果您尝试加载过多信息,请尝试在存储过程中使用分页并仅从数据库中获取所需的行数
-
我知道 600k 行太多了,我认为客户端无法查看所有行。我希望进行分页,但客户更喜欢在一页中显示所有数据。原因很简单,因为他们的旧系统显示所有内容而且速度非常快。
-
@Paparazzi:WinForms 与 OP 的问题无关。正是那些 600K 记录使他的应用程序变慢了,它在 WPF 中也会做同样的事情。如果您建议 WPF 进行分页,也可以在 WinForms 中完成。
标签: c# sql sqlite datagridview datatable