2014-10-17 82 views
0

this blog post,使用在Windows應用商店應用程序的SQLite入門一些必備的代碼給出,用於添加到App.xaml.cs的OnLaunched方法:指定SQLite數據庫的路徑可以是任意值嗎?

// Get a reference to the SQLite database 
this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "customers.sqlite"); 

我的問題是:我可以使用任意值替換「customers.sqlite」部分,還是必須在我的代碼中匹配其他東西,比如我的表定義類的名稱(在我的例子中是「PhotraxCoreData.cs」,根據格林先生的建議,添加到新創建的「模型」文件夾下面)?

我的理解是,一旦我得到了定義(我)這些類,並在App.xaml.cs上面的代碼,連同這裏面(適合我的SQLite類):

using (var db = new SQLite.SQLiteConnection(this.DBPath)) 
{ 
    // Create the tables if they don't exist 
    db.CreateTable<PhotraxBaseData>(); 
    db.CreateTable<PhotraxNames>(); 
    db.CreateTable<PhotraxQueries>(); 
} 

...基於我指定的那些類的SQLite表將被創建,並且名稱爲「customers.sqlite」(假如我不更改它)。

所以,我可以使用:

this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "platypus.sqlite"); 

...還是必須是這樣的:

this.DBPath = Path.Combine(
    Windows.Storage.ApplicationData.Current.LocalFolder.Path, "PhotraxCoreData.sqlite"); 
+0

根據羅伯特格林的文章中引用的視頻,它是一個任意值 - 它可以是任何東西。 – 2014-10-17 17:40:08

回答

1

該數據庫名只是一個文件名。 該目錄必須可由您的應用程序訪問,但文件名可以是任何內容。

1

正如CL所說,文件名可以是應用程序直接訪問的任何東西。 Windows Store應用程序對文件系統的訪問權限有限,因此sqlite數據庫必須位於應用程序安裝位置(只讀)或其應用程序數據文件夾(讀寫)中。一種常見的模式是將種子數據庫發佈到應用程序包中,然後將其從安裝位置複製到首次使用時的應用程序數據中,以便將其寫入。

+0

對於Windows Store應用程序中的SQLite,我相信通過設置RG演示的方式會自動生成數據庫及其在應用程序數據文件夾中的表格......對嗎?它在我的開發機器上適用於我,我假設/希望它也能在用戶的機器上以這種方式工作。 – 2014-10-19 14:20:39

+1

是的。您可以在應用程序數據目錄中以編程方式創建數據庫,因爲您在那裏讀取了+寫入權限。 – 2014-10-19 17:42:00

相關問題