我需要在visual studio中的sqlite数据库中执行批量插入。有人知道怎么做吗?
答案 0 :(得分:7)
使用SQLite,您可以通过打开事务,循环遍历所有数据并执行相关的SQL INSERT命令,然后提交事务来完成此操作。这是在SQLite中执行批量插入的最快方法。
答案 1 :(得分:2)
private void prepareConnectionForBulkInsert(SQLiteConnection cn)
{
SQLiteCommand stmt;
stmt = new SQLiteCommand("PRAGMA synchronous=OFF", cn);
stmt.ExecuteNonQuery();
stmt = new SQLiteCommand("PRAGMA count_changes=OFF", cn);
stmt.ExecuteNonQuery();
stmt = new SQLiteCommand("PRAGMA journal_mode=MEMORY", cn);
stmt.ExecuteNonQuery();
stmt = new SQLiteCommand("PRAGMA temp_store=MEMORY", cn);
stmt.ExecuteNonQuery();
}
答案 2 :(得分:2)
我使用SQLite.Net.Async-PCL nuget包在我的UWP应用程序中使用sqlite,我发现InsertAllAsync方法非常快。它能够在不到一秒的时间内将近33,000行插入表中,当我使用循环并且只是调用InsertAsync时,它花了将近10分钟。
我检查了源代码,并且它正在使用InsertAll方法的事务,所以很好,所有这些都已经处理好了,你可以传入你的项目列表而不必跳转通过任何篮球。
答案 3 :(得分:1)
您可以编写一个常规的insert语句并循环遍历数据集,在将相关数据插入查询字符串之后再将其运行到数据库中。
答案 4 :(得分:1)
我需要做同样的事情,我在Sqlite.Net论坛上找到了这个答案,可能对某些人感兴趣。
答案 5 :(得分:1)