Open
Description
When I use long for primary key I have this really wired issue and I don't think it is sqlite problem
on second sql update I get
"SQL logic error"
I don't have this problem when I use int as primary key
Any idea?
public class Stock
{
[PrimaryKey]
public long Id { get; set; }
[MaxLength(8)]
public string Symbol { get; set; }
public bool IsDownloaded { get; set; }
}
SQLiteConnection _db;
string DBconnectionString = String.Format("{0}\db.sqlite", Windows.Storage.ApplicationData.Current.LocalFolder.Path);
//Sqlite
_db = new SQLiteConnection(new SQLitePlatformWP8(), DBconnectionString, SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite, true);
_db.TraceListener = new DebugTraceListener2();
_db.DropTable<Stock>();
_db.CreateTable<Stock>();
_db.BeginTransaction();
List<Stock> stocks = new List<Stock>();
stocks.Add(new Stock { Symbol = "cccccccccc", Id=12312 });
stocks.Add(new Stock { Symbol = "aaaaaaa", Id = 1231212 });
stocks.Add(new Stock { Symbol = "bbbbbbbbb", Id = 12312222 });
_db.Insert(stocks[0]);
_db.Insert(stocks[1]);
_db.Insert(stocks[2]);
_db.Commit();
_db.BeginTransaction();
stocks[0].Symbol = "asdfasdfasdfa";
stocks[0].IsDownloaded = true;
stocks[1].Symbol = "asdfasdfasdfa34r5432";
stocks[1].IsDownloaded = true;
stocks[2].Symbol = "asdfasdfasdfa345r3242";
stocks[2].IsDownloaded = true;
_db.Execute("update \"Stock\" set \"IsDownloaded\"=? ,\"Symbol\"=? where (\"Id\" = ?)", stocks[0].IsDownloaded, stocks[0].Symbol, stocks[0].Id);
_db.Execute("update \"Stock\" set \"IsDownloaded\"=? ,\"Symbol\"=? where (\"Id\" = ?)", stocks[1].IsDownloaded, stocks[1].Symbol, stocks[1].Id);
_db.Execute("update \"Stock\" set \"IsDownloaded\"=? ,\"Symbol\"=? where (\"Id\" = ?)", stocks[2].IsDownloaded, stocks[2].Symbol, stocks[2].Id);
_db.Commit();