プログラムの寿命の終わりに、6 つの異なるリストの内容全体をデータベースにアップロードするコードがあります。問題は、それらがそれぞれ約 14,000 のアイテムを含む並列リストであり、個別のアイテムごとに挿入クエリを実行する必要があることです。これには時間がかかります。これを行うより速い方法はありますか? 関連するコードのサンプルを次に示します。
public void uploadContent()
{
var cs = Properties.Settings.Default.Database;
SqlConnection dataConnection = new SqlConnection(cs);
dataConnection.Open();
for (int i = 0; i < urlList.Count; i++)
{
SqlCommand dataCommand = new SqlCommand(Properties.Settings.Default.CommandString, dataConnection);
try
{
dataCommand.Parameters.AddWithValue("@user", userList[i]);
dataCommand.Parameters.AddWithValue("@computer", computerList[i]);
dataCommand.Parameters.AddWithValue("@date", timestampList[i]);
dataCommand.Parameters.AddWithValue("@itemName", domainList[i]);
dataCommand.Parameters.AddWithValue("@itemDetails", urlList[i]);
dataCommand.Parameters.AddWithValue("@timesUsed", hitsList[i]);
dataCommand.ExecuteNonQuery();
}
catch (Exception e)
{
using (StreamWriter sw = File.AppendText("errorLog.log"))
{
sw.WriteLine(e);
}
}
}
dataConnection.Close();
}
コードが構成ファイルから取得するコマンド文字列は次のとおりです。
コマンド文字列:
INSERT dbo.InternetUsage VALUES (@user, @computer, @date, @itemName, @itemDetails, @timesUsed)