2012-07-24 75 views
1

我想創建一個Sqlite數據庫使用Monotouch 3.0.3.4。一切工作正常在iPhone模擬器上,但我在測試iPhone上得到以下錯誤:創建一個SQLite數據庫與Monotouch - 權限被拒絕

DataLayer.CreateDatabase異常:System.UnauthorizedAccessException:訪問路徑「/ private/var/mobile/Applications/4B4944BB-EC37- 4B0C-980C-1A9B60DACB44/TestApp.app/myDatabase.db3「被拒絕。

這裏是我使用的代碼:

// creates database and tables if they do not exist. 
public void CreateDatabase() 
{ 
string sql = string.Empty; 
string dbFileName = "myDatabase.db3"; 
try { 
      if (!File.Exists (dbFileName)) { 

    // create database 
    SqliteConnection.CreateFile (dbFileName); //This is where the error occurs 
    Console.WriteLine ("CreateDatabase: Database created."); 
      ... 

    } 
     catch (Exception ex) { 
     Console.WriteLine ("CreateDatabase Exception: " + ex.ToString()); 
    } 

    ... 

我也曾嘗試specifing個人文件夾,但沒有效果。我需要做些什麼才能確保權限是正確的?

謝謝!

回答

1

的MonoTouch 3.0.3.4

這是有可能的MonoDevelop 3.0.3.4。請參閱關於MonoDevelop以獲取MonoTouch版本。

「/private/var/mobile/Applications/4B4944BB-EC37-4B0C-980C-1A9B60DACB44/TestApp.app/myDatabase.db3」

上的應用程序進行簽名的設備,因此其內容不能改變(不破壞簽名)。因此,您可以在目錄中更改內容而不是

您應該在Documents目錄中創建(或複製)數據庫,然後以讀寫方式打開數據庫。

查看linked article瞭解更多詳情。

+0

謝謝,鏈接的文章給了我數據庫工作的信息。非常感謝! – user1549631 2012-08-08 11:23:57

+0

太棒了:)請花時間將問題標記爲已回答(選中投票計數下方的複選標記),以便其他尋找類似問題的用戶可以很快看到他們的解決方案。 – poupou 2012-08-08 12:05:18