2012-03-06 8 views
0

私はデータベースを作成しました。それを開いた:Androidデータベースのアップデート記録が機能していませんか?

私はユーザー登録とパスワードをリセットするために有効にするものを書いています。 私は新しいレコードを挿入したり、データベースに問い合わせても問題はありません。しかし、私はエラーメッセージが表示されます私のresetPassword(username,password)方法について:

android.database.sqlite.DatabaseObjectNotClosedException: 
Application did not close the cursor or database object that was opened here 

助けてください、私は今、あまりにも長い間、この上で立ち往生してきました。

+0

このhttp://stackoverflow.com/questions/4734886/how-can-one-avoid-databaseobjectnotclosedexception – asktomsk

+0

あなたが前にチェックする必要がありますを参照してください。 'db.isOpen()'を使用してデータベースをオープンしようとしています...すでにオープンしている場合はそれを使用してください...しかし、より良い方法は、データを照会した後に 'db.close()'を閉じることです。 – MKJParekh

+0

public SQLiteStatementクエリー= db.compileStatement( "SELECT count(*)ユーザーのユーザー名= '" + CheckUserame + "'"); \t \t return(int)query.simpleQueryForLong(); \t} ...言い換えれば、私はここでどこかでそれを閉じたはずですか? – Michelle1109Andriod

答えて

0

データベースにクエリを実行すると、通常、Cursorオブジェクトが表示されます。ここに例があります:

public Cursor querySomething() { 
      final String whereClause = ... 
      final String[] params = ... 
    final Cursor c = this.getReadableDatabase().query(
      Table.TABLE_NAME, 
      Table.allColumnNames(), 
      whereClause, 
      params, // parameters for where clause 
      null, // group 
      null, // having 
      null); // order 
    return c; 
} 

カーソルCを使用して、回答の行にアクセスします。あなたはカーソルオブジェクトをクローズする必要が答えを処理し終えたら:

c.close(); 
関連する問題