C#/.Net 中快速批量给SQLite数据库插入测试数据
使用transaction:
varstopwatch=newStopwatch();
using(varcmd=newSQLiteCommand(db_con))
using(vartransaction=db_con.BeginTransaction())
{
stopwatch.Reset();
stopwatch.Start();
foreach(variteminsorted)
{
sql=string.Format("insertintodb(st1,st2)values('{0}',{1})",item.Key.Replace("'","''"),item.Value);
cmd.CommandText=sql;
cmd.ExecuteNonQuery();
++readCnt;
if(++readCnt%1000000==0)
{
Console.Write("\rDumped{0}lines...",readCnt);
}
}
Console.Write("\rCommitting....");
transaction.Commit();
stopwatch.Stop();
Console.Write("\rDumped{0}linesusing{1}seconds...",readCnt,stopwatch.Elapsed.TotalSeconds);
}