gpt4 book ai didi

c# - Xamarin Forms SQLite 更新

转载 作者:行者123 更新时间:2023-11-30 20:18:55 25 4
gpt4 key购买 nike

我已经安装了 nuget 包 sqlite-net-pcl我想根据按钮上的文本插入或更新:

 SQLiteConnection database = DependencyService.Get<ISQLite>().GetConnection();
database.CreateTable<Announcement>();
var announcement = new Announcement { AnnouncementTitle = Title, AnnouncementDate = Date, AnnouncementText = Message };
if (text == "Save") {
if (database.Insert(announcement) != -1) {
System.Diagnostics.Debug.WriteLine("INSERTED");
}

}
else {
if (database.Update(announcement) > 0) {
System.Diagnostics.Debug.WriteLine("UPDATED");
}
}

当我想保存它时,打印 INSERTED,我可以在我的列表中看到新项目,但是当涉及到更新时,它不打印任何东西,我也没有收到错误。我也尝试了异步方法,但它没有用

谢谢

最佳答案

你需要在你的对象声明中有一个主键或 Id

[PrimaryKey, AutoIncrement]
public int Id { get; set; }

识别您数据库中的唯一对象。

在您的代码中,您总是创建一个没有 ID 的新对象。 SQLite 看到它并在数据库中为您创建一个新的 Id。但是,如果 Id 为空,则更新不起作用。

如果你想更新它,你必须使用正确的 Id 从数据库中加载它,然后你可以编辑和更新它。

关于c# - Xamarin Forms SQLite 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40260053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com