SQLite mit WP8 macht mich verrückt. :(WP8/C#/SQLite: Letzte ID erhalten?
Alles, was ich tun möchte, ist der Wert der zuletzt eingefügte ID abzurufen ...
Ich habe:
class ShoppingItem
{
[SQLite.PrimaryKey, SQLite.AutoIncrement]
public int Id {get; set;}
public string Name {get; set;}
public string Shop {get; set;}
public bool isActive {get; set;}
}
Nun, weder das verwendete SQLiteConnection
Objekt noch seine Table<ShoppingItem>
scheint ein geeignetes Mitglied zu enthalten, das die letzte ID enthält
So zu tun, habe ich versucht.
private int GetLastInsertedRowID()
{
int Result = -1;
using (var db = new SQLiteConnection(m_DatabasePath)) {
Result = db.ExecuteScalar<int>("SELECT last_insert_rowid();");
}
return Result;
}
Diese Funktion gibt jedoch immer 0
zurück. :( Aber wenn ich alle Einträge von ShoppingItem
lesen, haben ihre IDs Werte = 0
Also meine Frage ist: Wie kann ich die letzte Eingabe id retreive
PS:? Ändern der SQL-Abfrage SELECT last_insert_rowid() FROM ShoppingItem;
das gleiche Ergebnis gab
PPS:. Lösungen wie Getting the Last Insert ID with SQLite.NET in C# kompilieren nicht, anscheinend gibt es eine ältere SQLite-Version verwendet wird, mit einer ganz anderen API
ist db.ExecuteScalar ("SELECT last_insert_rowid()"); Arbeiten? (Ohne; am Ende der Abfrage) –
Joel
nein, das gleiche Ergebnis mit oder ohne Semikolon :( –
Ich würde empfehlen, dass Sie einen anderen Namen für Ihre PK-Spalte "Id" wählen. Ich weiß nicht, ob Id so etwas wie ein ist Internes Schlüsselwort. Aber ich rate nur hier. – Joel