SQLite数据库数据未复制到Windows 8.1 Store App中的LocalFolder

时间:2014-10-10 14:39:28

标签: c# windows sqlite

我将包含表和数据的预先存在的SQLite数据库包含在Win 8.1 Store App中。

在使用VS 2013进行开发期间,第一次将数据库复制到正确的LocalFolder时运行应用程序。但是,当使用Store - > Create App Packages通过sideloading部署应用程序到任何其他计算机时,只会在LocalFolder中创建一个没有数据或表的文件(0字节)。

以下是我的代码:

 public MainPage()
    {
        this.InitializeComponent();
        CopyDatabase();
       InitializePage();
        DataSetup();

    }


private async Task CopyDatabase()
    {
        bool isDatabaseExisting = false;

        try
        {
            StorageFile storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync("ExpressEMR.db3");
            isDatabaseExisting = true;
            Debug.WriteLine("DB exists");
        }
        catch
        {
            isDatabaseExisting = false;
            Debug.WriteLine("DB not  exists");
        }

        if (!isDatabaseExisting)
        {
            StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync("ExpressEMR.db3");
            await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder);
            Debug.WriteLine("DB copied");
        }
    }

我的代码遵循大多数使用预先存在的SQLite数据库的Web示例。任何帮助或指示表示赞赏。

如何使用新设备中包含的数据复制数据库?

TIA

1 个答案:

答案 0 :(得分:1)

我相信您遇到的问题是您没有正确添加要复制到项目中的数据库。如果首先将数据库添加到项目中,然后将数据库的属性设置为:

,那么您的代码应该没问题
  1. 构建操作:内容
  2. 复制到输出目录:如果更新则复制
  3. 完成此操作后,您需要重新部署项目,并且所有项目都应正确同步。 enter image description here