1

WindowsPhone7.1プロジェクトに既存のsqliteデータベースがあります。データベースでselectクエリを実行できますが、データベース内のテーブルで挿入クエリまたは更新クエリを実行できません。たとえば、次のように実行します。

//Update operation
    public void Update<T>(string statement) where T : new()
    {
        try
        {
            Open();
            SQLiteCommand cmd = db.CreateCommand(statement);
            int i = cmd.ExecuteNonQuery();

        }
        catch (SQLiteException ex)
        {
            System.Diagnostics.Debug.WriteLine("updation failed: " + ex.Message);
            throw ex;
        }
}

これは完全に正常に実行され、例外はスローされず、更新が成功したことを示します。しかし、データベースを見ると、更新されたレコードではなく、古いレコードが表示されます。SQLITEブラウザで実行してクエリを相互検証しましたが、正常に動作します。しかし、私がアプリを実行すると、そうではありません。nonQueryステートメントが実行されると1になります。これは、レコードが更新されることを意味します。しかし残念ながらそうではありません。

これに関する助けをいただければ幸いです。前もって感謝します...

4

1 に答える 1

0

コミットトランザクションコードが表示されません。デフォルトでは、トランザクションはロールバックされます。

また、DatabaseSchemaUpdaterクラスを知っていますか?これは、アプリケーションのDBスキーマをアップグレードするために使用したサンプルです。正常に機能します。この記事は列の追加に関するものですが、クラスにはAddTable<…>メソッドもあります。2番目のコメントも読むことを忘れないでください。

于 2012-11-16T23:50:15.397 に答える