批量插入SQLite.Net数据库

时间:2009-07-15 15:37:56

标签: .net visual-studio sqlite

我需要在visual studio中的sqlite数据库中执行批量插入。有人知道怎么做吗?

6 个答案:

答案 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论坛上找到了这个答案,可能对某些人感兴趣。

http://sqlite.phxsoftware.com/forums/t/134.aspx

答案 5 :(得分:1)

我编写了一个类来帮助在SQLite中实现批量插入。希望它有用:

http://procbits.com/2009/09/08/sqlite-bulk-insert/

-jP