を動作しませんでした。これで、Id
フィールド(またはモデルでの呼び方)が入力されないため、更新する項目がわかりません。
コードを更新して、このようなことをしてください。注意:モデルの詳細とSQLiteの関連知識が不足しているため、これは疑似コードです。
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 {
var announcementToUpdate = database.Query<Customer>($"SELECT * FROM Announcement WHERE Id = '{originalId}'").
// update your 'announcementToUpdate' object with new values here
if (database.Update(announcementToUpdate) > 0) {
System.Diagnostics.Debug.WriteLine("UPDATED");
}
}
originalId
は、編集しようとしているIDのアナウンスで変数にする必要があります。
ここで重要なのは、データベースからレコードを最初に取得する必要があることです。 または更新するレコードのId
で新しいオブジェクトを作成します。
私はこのエラーを受け取ります:System.NotSupportedException:List'1を更新することができません:それは発表が削除しようとしているPKを持っていないhavinh id = 1:var announcementToUpdate = database.Query $ "発表からの選択* WHERE AnnouncementId = '{1}'"); –
Mireille
モデルには主キーがありません。指定することをお勧めします。ドキュメントについては[こちら](https://components.xamarin.com/gettingstarted/sqlite-net)を参照してください。 –
はい:[PrimaryKey、AutoIncrement] public int AnnouncementId {get;セット; } – Mireille