有关 Parallel.Foreach 的使用

wenyiyi 2016-10-11 11:09:44

string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + filePath + ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'";
OleDbConnection con = new OleDbConnection(strConn);
con.Open();
string[] names = GetExcelSheetNames(con);

if (names.Length > 0)
{
OleDbCommand cmd = con.CreateCommand();
cmd.CommandText = string.Format(" select * from [{0}]", name);
OleDbDataReader odr = cmd.ExecuteReader();
while (odr.Read())
{
//读取 odr
}
}


我发现 while (odr.Read())
{
//读取 odr ,添加到数据库。
}
这一段耗时比较长,想优化下。 我网上找了有个 Parallel.Foreach 。就是不懂应该怎么使用 。
...全文
1608 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenyiyi 2016-10-11
  • 打赏
  • 举报
回复
引用 1 楼 D56233577 的回复:
不需要Parallel.Foreach,要想快用SqlBulkCopy。
我的DaTatalbe 结构,与数据库表结构不一致。不能用SqlBulkCopy
D56233577 2016-10-11
  • 打赏
  • 举报
回复
不需要Parallel.Foreach,要想快用SqlBulkCopy。
xiaoqiu_net 2016-10-11
  • 打赏
  • 举报
回复
Parallel.Foreach 是并行遍历吧 就是多线程一样了来执行循环。
D56233577 2016-10-11
  • 打赏
  • 举报
回复
引用 2 楼 wenyiyi 的回复:
[quote=引用 1 楼 D56233577 的回复:] 不需要Parallel.Foreach,要想快用SqlBulkCopy。
我的DaTatalbe 结构,与数据库表结构不一致。不能用SqlBulkCopy[/quote] 处理成一致不难吧,另外SqlBulkCopy除了可以用DaTatalbe,IDataReader也是可以的。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧