mercredi 8 avril 2015

SQLite Update "Cannot update List1: it has no PK"

Vote count:


I'm having an issue when trying to update a value on my database and can't really find much if any help through Google.

I want to set a column called IsOpen (bool but because of SQLite I'm using integer) to 0 (false) if the EndDate for this entry is today (now). When I run my UPDATE query I get the following exception; "Cannot update List1: it has no PK".

I don't understand this because I've checked my Model class and I clearly have a PK set;

[SQLite.AutoIncrement, SQLite.PrimaryKey]
public int GoalID
get { return _goalID; }
if (_goalID != value)
_goalID = value;


I'm attempting to update this way;

string sql = @"UPDATE GoalsTrackerModel
SET IsOpen = '0'
WHERE EndDate = datetime('now')"; // I've also tried date('now')

My Update<> looks like;

public void Update<T>(string stmt) where T : new()
using (var conn = new SQLiteConnection(App.ConnectionString))
var result = conn.Query<T>(stmt);

if (result != null)
conn.RunInTransaction(() =>

But like I said, I keep getting "Cannot update List1: it has no PK". What's throwing me off as well is if I change the WHERE to something like; WHERE IsOpen = '1' then it'll update all the values that have 1 to 0, but it'll still give me the "Cannot update List1: it has no PK" message.

Maybe my WHERE is wrong when checking if the EndDate = now? I'm implementing all this as soon as the page is opened. Any ideas?


asked 1 min ago

SQLite Update "Cannot update List1: it has no PK"

Aucun commentaire:

Enregistrer un commentaire