我想从数据集中读取所有结果并通过Mysql插入一个值,但是插入会带我随机结果:
Parallel.ForEach(table, new ParallelOptions { MaxDegreeOfParallelism = 2 }, row =>
{
DataRow newrow = BDDestino.newrow("Cars");
newrow["Code"] = row["CODE"];
newrow["Name"] = row["NAME"];
BD.insert(newrow);
});
DataSet / DataTable“表”的内容很棒,但Mysql表中的插入是随机的。
如果我的行是
1, 2, 3, 4
插入有时是:2,3
或:> 1,2,3
我需要按顺序排列所有行。
编辑:我认为 Parallel.ForEach 句子可以插入白名单而且非常快,但我看到 Parallel.ForEach 没有自己动手吧。就像@juharr说的那样,这句话可能是最糟糕的。谢谢大家。
答案 0 :(得分:1)
如果使用并行性,则无法保证调用.insert()的顺序(如您所见)。
不知何故,您需要提前修复该订单:
使用数组索引,可以从现有表中预先计算。
[status]
或者也许没关系......你可以随后对它们进行排序。