我正在尝试使用事务将大量数据插入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时交易可能会失败?
答案 0 :(得分:0)
通过使用Dirk和Shawn建议的参数来解决