簡體   English   中英

無法以只讀模式打開Sqlite數據庫

[英]Can't open Sqlite database in read-only mode

我有一個Sqlite數據庫,我包含在我的MonoTouch應用程序中。 到目前為止,它對我來說運行良好,但現在我想以只讀模式而不是讀寫方式打開它。

所以我已經將連接字符串更改為包含'Read Only = True',但是當我調用Open()時,我收到以下錯誤:

Library used incorrectly (at Mono.Data.Sqlite3.Open)

如果我深入了解它顯示的異常

_errorCode = Misuse

這就是它給出的所有信息。

這是代碼:

var _conn = new SqliteConnection("Data Source=db/sampleDb;Read Only=True");
_conn.Open ();

您在Mono.Data.Sqlite.dll發現了一個錯誤。

在解析和設置ReadOnly標志之前,會附加(默認情況下) Create標志。 結果標志無效, sqlite報告錯誤。

我會為將來的版本(Mono和MonoTouch ......)解決這個問題。 如果這阻止了你,那么請在http://bugzilla.xamarin.com上打開一個錯誤報告,我會將一個固定的程序集(帶有替換現有程序的說明)附加到錯誤報告中。

你有沒有嘗試過?:

var _conn = new SqliteConnection("Data Source=db/sampleDb;mode=ro");

這對我有用(aspnet核心):

var _conn = new SqliteConnection("Data Source=db/sampleDb;mode=ReadOnly");

你的代碼是正確的,我只是嘗試過(不使用MonoTouch),它對我有用。

你有最新版本的System.Data.SQLite.dll嗎? 如果是,那么可能是與MonoTouch有關的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM