【问题标题】:SQLite Xamarin deleting error because there is no PKSQLite Xamarin 删除错误,因为没有 PK
【发布时间】:2018-09-28 12:26:27
【问题描述】:

我用 sqliteDB 制作了一个应用程序。但是当我想删除某些东西时,我总是会出错。这是我的代码: 型号:

    class Einkauf
    {
       private int _id;

        [PrimaryKey, AutoIncrement]
        public int Id
        {
            get
            {
                return _id;
            }
            set
            {
                _id = value;
            }
        }

        [MaxLength(100)]
        public string EssenName { get; set; } 

        public int Stueckzahl { get; set; }
    }

删除函数:

    public partial class EinkaufAdd : ContentPage
    {
        private SQLiteAsyncConnection _connection;
        private ObservableCollection<Einkauf> _einkauf;

        public EinkaufAdd ()
        {
            InitializeComponent ();

        }

        private async void Button_Clicked(object sender, EventArgs e)
        {
            var response = await DisplayAlert("Achtung", "Wollen sie wirklich 
            alle Einträge löschen?", "Ja", "Nein");
            if (response == true)
            {
               //SQLITE
                _connection = DependencyService.Get<ISQLiteDb>().GetConnection();
                await _connection.CreateTableAsync<Einkauf>();
                var einkauf = await _connection.Table<Einkauf>().ToListAsync();
                await _connection.DeleteAsync(einkauf);
            }
        }

当我点击按钮时,我得到一个错误,叫做:

"System.NotSupportedException: "无法删除 List`1:它没有 PK"

”。它是一个“全部删除”按钮,仅供参考。有人可以帮我吗?

Debugginig 告诉我“einkauf”对象有一个 id、essenname 和所有这些东西。

【问题讨论】:

    标签: c# sqlite xamarin


    【解决方案1】:

    Delete() 方法将单个对象作为参数。您正在尝试删除整个列表

    // this returns a list of every item in the table
    var einkauf = await _connection.Table<Einkauf>().ToListAsync();
    await _connection.DeleteAsync(einkauf);
    

    要全部删除,请改为遍历列表

    foreach (var x in einkauf) {
      await _connection.DeleteAsync(x);
    }
    

    【讨论】:

    • 还是同样的问题:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2019-08-25
    • 1970-01-01
    • 2018-04-05
    • 2012-07-18
    相关资源
    最近更新 更多