mercredi 8 avril 2015

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


Vote count:

0




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; }
set
{
if (_goalID != value)
_goalID = value;

OnPropertyChanged("GoalID");
}
}


I'm attempting to update this way;



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


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(() =>
{
conn.Update(result);
});
}
}
}


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?


Thanks.



asked 1 min ago







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

Aucun commentaire:

Enregistrer un commentaire