WP8のSQLiteは私をナットにしています。 :(WP8/C#/ SQLite:最後に挿入されたIDを取得しますか?
私がやりたいことのすべては、最後に挿入、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:?SELECT last_insert_rowid() FROM ShoppingItem;
にSQLクエリを変更します同じ結果を与えた
PPS:Getting the Last Insert ID with SQLite.NET in C#のようなソリューションが明らかに使用され、古いバージョンのSQLiteは全く異なるAPI
がdb.ExecuteScalarである( "()last_insert_rowid SELECT");ワーキング? (クエリーの最後にはありません) –
Joel
セミコロンの有無にかかわらず同じ結果( –
あなたのpk列 'Id'に別の名前を選択することをお勧めします。内部キーワード。 – Joel