如何使用现有的sqlite数据库在windows phone 8与cordova

本文关键字:phone windows cordova 数据库 何使用 sqlite | 更新日期: 2023-09-27 17:50:45

我正在用cordova 3.0构建一个混合应用程序。我使用插件将我的数据存储在sqlite数据库中。在android和ios上,我有一些脚本,将数据库复制到应用程序的"文档"文件夹,在那里我可以读/写预填充的数据库。现在我想把同样的存档到windows phone 8上。

我找到了一个教程:http://wp.qmatteoq.com/import-an-already-existing-sqlite-database-in-a-windows-8-application/

但它与cordova无关。

下面是我的代码:
namespace com.example.hello
{
   public partial class MainPage : PhoneApplicationPage
   {
    // Constructor
    public MainPage()
    {
        InitializeComponent();
        this.CordovaView.Loaded += CordovaView_Loaded;
    }
    private async void CordovaView_Loaded(object sender, RoutedEventArgs e)
    {
        await CopyDatabase();
        this.CordovaView.Loaded -= CordovaView_Loaded;
    }
    private async Task CopyDatabase()
    {
        bool isDatabaseExisting = false;
        try
        {
            StorageFile storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync("my.db");
            isDatabaseExisting = true;
        }
        catch
        {
            isDatabaseExisting = false;
        }
        if (!isDatabaseExisting)
        {
            StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync("my.db");
            await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder);
        }
    }
}
}

但我总是得到一个异常"System.IO.FileNotFoundException"。但是.db文件仍然在正确的位置。如果我使用一个代码片段来显示"ApplicationData.Current."中的所有文件。,我的sqlite填充仍然在那里

我也有一个要点与截图https://gist.github.com/pille72/9615840

如何使用现有的sqlite数据库在windows phone 8与cordova

将构建动作从Resource更改为Content