首页 > 解决方案 > 为什么我的交易在超过一定数量的插入时会失败?

问题描述

我正在尝试使用事务将大量数据插入 SQLite 数据库。

using (var transaction = database.BeginTransaction())
      {
          foreach(var i in Enumerable.Range(0, _wordCount))
          {
              statement.CommandText = $"INSERT INTO Hashes (word, hash) VALUES ('{words[i]}', '{hashes[i]}')";
              statement.ExecuteNonQuery();
          }

          transaction.Commit();
      }

上面的代码适用于 10 - 12k 范围内的少量数据,但是,任何超过 12k 标记的东西似乎都会崩溃并出现以下错误

'SQL logic error near "d": syntax error'

在线资源表明,对于您可以通过单个事务完成的插入次数不应该有限制,因此无论插入次数如何,事务正常运行都是有意义的

当超过 12,000 次插入时,我有什么遗漏或者我的交易可能失败的任何原因吗?

标签: c#sqlite

解决方案


使用 Dirk 和 Shawn 推荐的参数解决


推荐阅读