共用方式為


資料庫錯誤

SqliteException 會在遇到 SQLite 錯誤時擲回。 訊息是由 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;

另請參閱