【问题标题】:how to create an update transaction in sqlite using c#如何使用c#在sqlite中创建更新事务
【发布时间】:2015-07-29 17:40:50
【问题描述】:

我从这个问题开始How to Insert and Update in SQLite using SQLite-net

但是,它需要的时间比应有的要长得多。这在答案/cmets 中有说明:

谢谢,看起来它正在工作...但是非常非常非常慢... 32,000 条记录复制到数据库需要 3-4 分钟。它只有 3 列...奇怪为什么这么慢? – Tommix 2011 年 11 月 27 日 12:30

尝试在事务中进行更新;如果没有显式事务,SQLite 会为每个插入隐式创建一个,这对于大量插入来说非常慢。此外,32k 记录相当大,也许您应该尝试以较小的批次进行。 ——Thomas Levesque 2011 年 11 月 27 日 17:38

这是我用来从 MS SQL 创建的数据表更新本地 SQLite DB 的代码。我如何在交易中做到这一点?

            SQLiteDataAdapter dataUpdate = new SQLiteDataAdapter("SELECT * FROM ItemMaster", sqLiteconnection);
            var cmdBuilder = new SQLiteCommandBuilder(dataUpdate);
            dataUpdate.Update(dataInsertStagingTable);

            mConnect.Close(); 
            sqLiteconnection.Close();

【问题讨论】:

    标签: c# database sqlite datatable


    【解决方案1】:

    看起来我想通了,发现这不是我的主要问题。主要问题是参数化插入语句。我还将它包装在交易中。这个问题可以按回答结束。

    using (SQLiteTransaction tran = sqLiteconnection.BeginTransaction())
    {
        <for loop inserts here>
        tran.Commit();
    }
    sqLiteconnection.Close();
    

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      相关资源
      最近更新 更多