Skip to content

long as PrimaryKey is problem in transactions(SQL logic error)? #144

Open
@xlazom00

Description

@xlazom00

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();

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions