小编dev*_*998的帖子

从不同的计算机部署相同的应用程序时,SQLite 数据被删除

我有两台计算机,每台计算机都运行 Community Edition Visual Studio 2015。

两台机器都从同一个 GitHub 主节点构建 Xamarin Forms 应用程序。

每台机器都可以成功地将Android应用程序安装到我的Android手机上。

安装后,应用程序运行没有问题。

两台机器都设置为“在部署之间保留设备上的应用程序数据缓存”

我遇到的问题是应用程序使用的 SQLite 数据库。如果我从其中任何一台计算机安装,该应用程序就可以工作,并且可以保存数据。如果我更改代码并从同一台机器重新部署,SQLite 数据将被保留。但是,如果我切换到另一台机器进行下一次部署,所有数据都会消失。从那时起,可以添加新数据,只要我使用另一台机器,新部署就不会导致数据丢失。如果我切换到另一台机器,下一次部署会删除数据。

我的问题是:无论使用哪台计算机进行部署,我如何才能保持 SQLite 数据库到位?

public class SQLiteService : ISQLiteService
{
    string GetPath(string databaseName)
    {
        if (string.IsNullOrWhiteSpace(databaseName))
        {
            throw new ArgumentException("Invalid database name", nameof(databaseName));
        }
        var sqliteFilename = $"{databaseName}.db3";
        var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
        var path = Path.Combine(documentsPath, sqliteFilename);
        return path;
    }

    public SQLiteConnection GetConnection(string databaseName)
    {
        return new SQLiteConnection(GetPath(databaseName));
    }

    public long GetSize(string databaseName)
    {
        var fileInfo = new FileInfo(GetPath(databaseName));
        return fileInfo != …
Run Code Online (Sandbox Code Playgroud)

sqlite android xamarin xamarin.forms

6
推荐指数
0
解决办法
513
查看次数

无法使用 TypeScript 在 forEach 循环中设置属性

我正在尝试设置一个嵌套在两个 forEach 循环中的布尔属性。

循环工作正常,但出现错误: TypeError: Cannot set property 'hasAtLeastOne' of undefined。

有人有什么想法吗?

谢谢。

export classItemComponent implements OnInit {

hasAtLeastOne: boolean = false;


onSubmit(event) {
    this.hasAtLeastOne = false;
    this.user.Item.forEach(function (value) {

    value.ItemMemberships.forEach(function (value) {

      if (value.ItemMembershipActive == 1)
      {
         this.hasAtLeastOne = true;        // This line fails.
      }
    })

  });
}

}
Run Code Online (Sandbox Code Playgroud)

typescript

0
推荐指数
1
解决办法
2989
查看次数

标签 统计

android ×1

sqlite ×1

typescript ×1

xamarin ×1

xamarin.forms ×1