繁体   English   中英

如何使用C#在sqlite中创建更新事务

[英]how to create an update transaction in sqlite using c#

我从这个问题开始: 如何使用SQLite-net在SQLite中插入和更新

但是,它花费的时间比应该花费的时间长得多。 这在答案/评论中指出:

谢谢,看起来好像正在工作...但是非常非常慢...要复制到数据库中的32,000条记录大约需要3-4分钟。 它只有3列...奇怪为什么这么慢? – Tommix '11 Nov 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();

看来我想通了,发现这不是我的主要问题。 主要问题是参数化插入语句。 我也将其包装在交易中。 这个问题可以按照回答关闭。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM