2014-09-20 2 views
1

я пытаюсь получить доступ к моей новой базе данных SQLite с помощью IsolatedStorage, но когда я делаю:Как получить доступ к базе данных SQLite через изолированное хранилище?

new SQLiteConnection(_dbpath); 

База данных не найдена.
Вот мой код, чтобы создать файл:

IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication(); 
if (!isoStore.FileExists("TestDB.sqlite")) 
{ 
    isoStore.CreateFile("TestDB.sqlite"); 
} 
_dbpath = System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "SportInDB.sqlite"); 

Я не пропустить что-нибудь во время создания нового SQLiteConnection?

ответ

0

Как насчет минимального примера? Он создает базу данных с таблицей, которая соответствует class Question.


// namespaces 
using SQLite; 
using System.IO; 
using System.IO.IsolatedStorage; 
using System.Threading.Tasks; 

// define a class like table to create 
public class Question 
{ 
    [SQLite.PrimaryKey, SQLite.AutoIncrement] 
    public int Id { get; set; } 
    public int Status { get; set; } 
} 

public partial class MainPage : PhoneApplicationPage 
{ 
    string dbPath = ""; 

    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 

     // combine the local folder with the file name of the database 
     dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.sqlite");       

     CreateDBTable();    
    } 

    // from the MSDN article for getting SQLite to work 
    private async Task<bool> FileExists(string fileName) 
    { 
     var result = false; 
     try 
     { 
      var store = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(fileName); 
      result = true; 
     } 
     catch 
     { 
     } 
     return result; 
    } 

    // if the file doesn't exist, create it with the db.CreateTable 
    public void CreateDBTable() 
    { 
     if (!FileExists("db.sqlite").Result) 
     { 
      using (var db = new SQLiteConnection(dbPath)) 
      { 
       db.CreateTable<Question>(); 
      } 
     } 
    } 
} 
+0

я работать с SilverLight приложение, и я не Windows.Storage.ApplicationData.Current.LocalFolder.Path – MatDev8

+0

, когда я сделать новый путь подключения не найден ... но getfileasync вернуть хорошее value .. – MatDev8

+0

Если у вас нет 'Windows.Storage.ApplicationData.Current.LocalFolder.Path' в вашем 8.0 WP Silverlight или 8.1 WP Silverlight, то у вас есть огромная проблема. Сначала вам нужно исправить это. Создайте пустую серебряную иллюстрацию из шаблона, можете ли вы получить к ней доступ там или у нее есть красные линии под текстом? –