0

sqlite クライアントを使用するアプリがあります。アプリでテーブルにデータを挿入し、自動インクリメントである ID が必要です。とにかくexecutenonqueryでIDを取得する方法はありますか? s.th のような sqlparameter または ...

次の方法を使用してデータをフェッチしていますが、rec 変数が ID を保持していると思っていましたが、常に rec=1 であり、これが何に役立つのかわかりません。

             int x= (System.Windows.Application.Current as App).db.Insert
<CsWidget>(ObjWidget, @"Insert into Tbl_Widget (Name) values(@Name");

             public int Insert<T>(T obj, string statement) where T : new()
                    {
                            Open();
                            SQLiteCommand cmd = db.CreateCommand(statement);               
                            int rec = cmd.ExecuteNonQuery(obj);
                             return rec;
                     }
4

2 に答える 2

0

@gleb.kudr が言ったように、挿入後の別のクエリが唯一の方法です。

cmd.ExecuteNonQuery();
cmd.CommandText = "SELECT LAST_INSERT_ROWID()";

object r = cmd.ExecuteScalar();

int id = 0;
int.TryParse( r.ToString(), out id );
于 2013-01-25T16:38:42.690 に答える