【发布时间】:2011-05-04 06:45:05
【问题描述】:
我有几千行的表,但即使我尝试读取 1000 行(和 10 列),也需要大约 10 秒才能得到结果。我觉得它太慢了,但我找不到任何问题。
读取数据的代码:
string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties="Excel 8.0;HDR=Yes;"", _excelFilename);
using (OleDbConnection c = new OleDbConnection(connectionString)) {
c.Open();
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Trend_Data$A1:J1000]", c);
OleDbDataReader dbReader = dbCommand.ExecuteReader();
while (dbReader.Read()) {
object[] values = new object[10];
dbReader.GetValues(values);
//save values into internal structure - fast
...
}
单步执行代码我发现调用ExecuteReader函数需要很长时间。
你有什么想法,如何加快代码速度?
【问题讨论】:
-
您的文件是否存储在本地?如果在共享驱动器上执行将需要一段时间。