複数のデータを挿入する際の時間を短縮する方法を教えてください。挿入をスピードアップする - 一度にリストを挿入する
私はExcelからデータを取得し、リストに保存します。私のループでは、私はすべての行の接続を開き、私は私の挿入機能で閉じる。挿入関数は、行ごとにデータを挿入します。時にはこの操作に多くの時間がかかることがあります。この
private void btnSave_Click(object sender, RoutedEventArgs e)
{
if (cmpList.Count == 0)
{
MessageBoxHelper.ShowError("List can not be inserted");
return;
}
foreach (var item in cmpList)
{
item.StartDate = dpStart.SelectedDate.Value;
item.FinishDate = dpFinish.SelectedDate.Value;
item.Insert();
}
MessageBoxHelper.ShowInformation("List was inserted successfully!");
comboCampaignType.IsEnabled = true;
}
のような私のインサートループは、私はこの
for (int i=0; i<excelRowCount; i++)
{
Campaign cmp = new Campaign();
cmp.Type = 1;
cmp.PriceP.Amount = double.Parse((string)sheet.GetRow(row).GetCell(1).Value, CultureInfo.InvariantCulture);
cmp.PriceV.Amount = double.Parse((string)sheet.GetRow(row).GetCell(1).Value, CultureInfo.InvariantCulture);
cmp.PriceP.Currency = (string)sheet.GetRow(row).GetCell(2).Value;
cmp.PriceV.Currency = (string)sheet.GetRow(row).GetCell(2).Value;
cmp.MinOrder = Convert.ToDouble((string)sheet.GetRow(row).GetCell(3).Value);
cmpList.Add(cmp);
}
のようにExcelからのすべての行に対してcmpListを作成し、一度にリストを挿入する方法はありますか?任意のアイデアは、この操作をスピードアップする方法?
'' 'cmpList'''とは何ですか?わかったら、適切な措置を勧めることができるはずです。例えば。コレクションをコンカレントに変換し、同時に多くの異なるタスクから挿入します。 '' 'cmpList'''の内容によっては、それをコンカレントコレクションにする必要さえないかもしれません。 –
[mysqlで複数の行を挿入する]の複製があります(https://stackoverflow.com/questions/6889065/inserting-multiple-rows-in-mysql) –
@JonathanDavidArndtなぜそう思いますか? –