我有一周内售出的所有订单的大文件。这个文件为每个订单提供一行。我们每天有5000多份订单。它逐行读取文件,然后将销售添加到销售数据库中。我真的需要提高自己的表现。
static void sold4weeks1()
{
string sold, asin;
string[] lines = System.IO.File.ReadAllLines(@"C:\out\qqqqq.txt");
inventoryBLL u = new inventoryBLL();
try
{
foreach (string line in lines)
{
char[] tabs = { '\t' };
string[] words = line.Split(tabs);
asin = words[12];
sold = words[14];
if (words[0].Substring(0, 3) == "S01") continue;
try
{
if (words[4] == "Shipped" || words[4] == "Unshipped")
{
u.setSoldin28(asin, Convert.ToInt16(sold));
Console.WriteLine("Update");
}
}
catch
{
}
}
}
catch
{ }
}发布于 2011-09-23 20:43:23
u.setSoldin28(asin, Convert.ToInt16(sold));正在写入数据库吗?
保存所有的更改,并在解析完成后将它们放在一个单独的连接下。这应该会节省不少时间。
不过,您在这段代码中还有很多其他问题。我强烈建议您研究适当的异常处理技术。
发布于 2011-09-23 20:41:47
不要使用ReadAllLines,逐行阅读它,它会大大提高性能
发布于 2011-09-23 20:59:53
将char数组移到循环外。
根据我的经验,使用StreamReader是从文件中读取数据的最快方法。
对于每一行循环的每一个参数。
https://codereview.stackexchange.com/questions/4965
复制相似问题