WP8を使用したSQLiteは私を夢中にさせています。:(
私がしたいのは、最後に挿入されたIDの値を取得することだけです...
私が持っている:
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;}
}
まあ、使用されたSQLiteConnection
オブジェクトもそのオブジェクトもTable<ShoppingItem>
、最後の ID を含む適切なメンバーを含んでいないようです。
だから私はやろうとした:
private int GetLastInsertedRowID()
{
int Result = -1;
using (var db = new SQLiteConnection(m_DatabasePath)) {
Result = db.ExecuteScalar<int>("SELECT last_insert_rowid();");
}
return Result;
}
しかし、この関数は常に を返します0
。:(しかし、のすべてのエントリを読み取るとShoppingItem
、それらの ID の値は != 0 になります。
私の質問は次のとおりです:最後に挿入されたIDを取得するにはどうすればよいですか?
PS: SQL クエリを に変更してもSELECT last_insert_rowid() FROM ShoppingItem;
、同じ結果が得られました。
PPS: C# で SQLite.NET を使用して最後の挿入 ID を取得するようなソリューションはコンパイルされません。明らかに古いバージョンの SQLite が使用されており、まったく異なる API が使用されています。