110,538
社区成员
发帖
与我相关
我的任务
分享
if (totalCount % 700000 != 0)
{
dt.Rows.Add(row);
}
else
{
//超过70w行的就分批插入 否则一直追加到dataTable中 会内存溢出
SqlConnection conns = new SqlConnection(DBHelper.connStr);
SqlBulkCopy bulks = new SqlBulkCopy(conns);
conns.Open();
bulks.BatchSize = dt.Rows.Count;
bulks.DestinationTableName = "Data";
bulks.BulkCopyTimeout = 600; //10分钟才超时(time out)
bulks.WriteToServer(dt);
bulks.Close();
conns.Close();
dt.Rows.Clear(); //清空dataTable 防止内存溢出
dt.Rows.Add(row); //添加当前行 否则每次符合if条件的行就没了
}//else end