数据库错误

遇到 SQLite 错误时会引发 SqliteException。 消息由 SQLite 提供。 属性SqliteErrorCodeSqliteExtendedErrorCode包含错误的 SQLite 结果代码

每当 Microsoft.Data.Sqlite 与本机 SQLite 库交互时,都可能会遇到错误。 以下列表显示了可能发生错误的常见方案:

  • 打开连接。
  • 启动事务。
  • 执行命令。
  • 调用 NextResult

请仔细考虑你的应用如何处理这些错误。

锁定、重试和超时

在锁定表和数据库文件时,SQLite 非常积极。 如果应用启用了任何并发数据库访问,则可能会遇到繁忙和锁定错误。 可以使用 预写日志记录来缓解许多错误。

每当 Microsoft.Data.Sqlite 遇到“繁忙”或“锁定”错误时,它都会自动重试,直到成功或达到命令超时限制。

可以通过设置 CommandTimeout来增加命令的超时。 默认超时值为 30 秒。 值 0 意味着无超时。

// Retry for 60 seconds while locked
command.CommandTimeout = 60;

Microsoft.Data.Sqlite 有时需要创建隐式命令对象。 例如,在 BeginTransaction 期间。 若要设置这些命令的超时,请使用 DefaultTimeout

// Set the default timeout of all commands on this connection
connection.DefaultTimeout = 60;

另请参阅