2012-11-20 13 views
4

我是WinRT開發新手。我想在C#中使用SQLite,但是當我嘗試連接到這樣的本地數據庫文件:在winrt中使用c#使用SQLiteConnection的proplem?

string path = @"D:\product.s3db"; 
string constr = "Data Source=" + path + "; Version=3; PRAGMA temp_store_directory=" + Windows.Storage.ApplicationData.Current.TemporaryFolder.Path; 
SQLiteConnection con = new SQLiteConnection(constr); 

它返回一個異常「無法打開數據庫文件」,所以這裏有什麼問題?

+0

你可能已經錯過了「:」在文件路徑符號。 d:\ data.mdf – Oleg

+0

@Oleg不,不是這樣的,再加上我與我拿了通過複製和勝利探險粘貼其他位置使用它,它沒有工作 – harryremon

+2

@harryremon你確定,是d:\ Data.mdf sqlite數據庫? –

回答

3

我認爲原因是,WinRT的應用程序沙箱和訪問有限的文件系統。請嘗試將數據庫存儲在可用於您的應用程序的文件夾中。
檢查Windows 8: The Right Way to Read & Write Files in WinRT文章,它可能有幫助。

+2

失敗這應該是你正在尋找的答案。下面是一些代碼,我今天運行表明,由dixeon的鏈接指向的可能的存儲位置的一個例子: '字符串dbRootPath = Windows.Storage.ApplicationData.Current.LocalFolder.Path; 使用(SQLiteConnection DB =新SQLiteConnection(Path.Combine(dbRootPath,「dbname.sqlite」)))' –

+0

謝謝你這麼多,現在我需要做的是確保我的數據庫文件複製到本地文件夾,而部署...任何想法如何做到這一點? – harryremon