我试图从C#代码在SQLite数据库中插入超过100万个条目。如果我一个接一个地做,它需要永远。 insert语句与不同的参数相同。想知道是否有像Java PreparedStatement st.addBatch(sql)
这样的东西。此外,我正在使用实体框架,所以想知道它是否有任何方式进行批量插入。如果没有,那么任何其他方式都可以,只要我能在合理的时间内完成。
我曾尝试使用似乎有效的交易,但想知道是否有其他正确的方法。在实体框架中也有这个对我来说是最好的。
这是我到目前为止的工作方式:
SQLiteCommand com = new SQLiteCommand("insert into Entrys(ID,KeyEntry,Password) values(@id,@key,@pass)", con);
com.Parameters.Add("@id", DbType.Int64);
com.Parameters.Add("@key", DbType.Int64);
com.Parameters.Add("@pass", DbType.Int64);
com.Prepare();
SQLiteTransaction tr = con.BeginTransaction();
com.Transaction = tr;
int limit = 1000000;
for(int i=1;i<limit;i++)
{
com.Parameters[0].Value = 1;
com.Parameters[1].Value = i;
com.Parameters[2].Value = i;
com.ExecuteNonQuery();
}
tr.Commit();
con.Close()
谢谢