我需要从SQLite加载数据,然后在DataTable中显示数据以显示在DataGridView中。我正在使用的当前方法是从DataReader读取数据,然后循环通过reader.Read()来创建每个DataRow。
上述方法的性能很慢,因为我有600k行数据行。我曾尝试使用dataTable.Load(阅读器),但它比以前更慢。有没有最快的方法将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);
}
答案 0 :(得分:0)
这只是您可能不关心的选项。
您现在正在做的是逐一向行的每一列输入600,000个值(dataTable),如果完全插入新行的列,则将新行添加到DataTable中。
在阅读循环时你的代码似乎只是构建一个新行并将其添加到dataTable。
如果您在阅读循环时不需要操纵每个值,这意味着您只需要数据,
SQLiteCommand command = new SQLiteCommand(sql, connection);
SqlDataAdapter da = new SqlDataAdapter(commmand);
da.Fill(dataTable);
dataGridView.ItemsSource= dt.DefaultView;