【发布时间】:2019-06-20 10:22:08
【问题描述】:
我将文本文件输入到 DataTable 中,然后使用 SqlBulkCopy 复制到数据库中。虽然 BulkCopy 速度很快,但将 50000 多行插入 DataTable 却不是(大约 5 分钟)。如何提高效率?
我可以快速向 DataTable 中插入数据吗? 如果没有,有没有办法将插入的数据永久保存到 DataTable 中,这样我就不必每次运行程序时都插入它?
for (; i < fares.Length; )
{
k = i;
Console.WriteLine("Inserting " + k + " out of " + (fares.Length));
for (; i <= (k + 3); i++)
{
if (i % 4 == 0)
{
for (int j = 0; j < fares.Length - 1; j++)
{
{
int space = fares[i].IndexOf(" ");
startStation = fares[i].Substring(0, space);
endStation = fares[i].Substring(space + 1, fares[i].Length - space - 1);
}
}
}
else if (i % 4 == 1)
{
valueFare = fares[i];
}
else if (i % 4 == 2)
{
standardFare = fares[i];
}
else if (i % 4 == 3)
{
time = int.Parse(fares[i]);
}
}
faresDT.Rows.Add(startStation, endStation, valueFare, standardFare, time);
【问题讨论】:
-
50k 行并不多。创建
Datatable的代码在哪里? -
我会完全摆脱数据表,直接将文件读入sqlbulkcopy,但是没有更多示例代码,很难提供帮助
-
我刚刚添加了将数据插入DataTable的代码
-
该代码所做的不仅仅是插入数据表。向控制台写入 50,000 次将需要一些时间,解析也需要一些时间。总而言之,你在问令人费解的问题