c# - 将DataReader中的值插入DataGridView的最快方法

时间:2016-05-13 16:43:46

标签: c# sql sqlite datagridview datatable

我需要从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);
}

1 个答案:

答案 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;