2012-04-26 2 views
1

私のデータベースのテーブルを更新するのに奇妙な問題があります...私がうまく説明できない場合は私を許してください...少し混乱しています... 問題はこれです: 私は値を持つテーブルを作成しました、私はリストビューでこの値を読んでいます..すべては今のところ働きます..挿入と問題のない状態で値を削除します..サービスでループを作成しました。私のデータベースの値と文字列を比較し、この比較が成立したらテーブルの値を変更する必要があります。Android db.updateは、最初にdb.deleteを使用すると動作しません。

本当の問題はこれです:私のdb.updateは、コマンド ...それを使用する場合、db.updateはもう動作しません。それは再び働く、私は新しいAVDを作る必要がある。

どのようにできますか?活動の

item.getMenuInfo(); 
    id = getListAdapter().getItemId(info.position); 

public void deleteReg(SQLiteDatabase db ,long id) 
     { 
      db.delete(TabRegistry.TABLE_NAME, TabRegistry._ID + "=" + id, null); 
     } 

: 私db.deleteとidはこれです(位置はgetPositions()の値であり、のためのカーソルで位置を突き止める(常に動作します:

databaseHelper.deleteReg(db, id); 

私db.updateはこれです、でも失敗しdb.update))サービスの

public void updateReg(SQLiteDatabase db,int positions, String stat) 
    { 
     ContentValues v = new ContentValues(); 
     v.put(TabRegistry.STATUS, stat); 
     db.update(TabRegistry.TABLE_NAME, v, TabRegistry._ID + " = " + positions, null); 
    } 

databaseHelper.updateReg(db, positions, "SUCCESS"); 

あなたはより多くのコードが必要な場合は、使用しているSQLiteのAPIはCRUD操作のオフに基づいて、私は事前にnow..thanksを追加するもの

答えて

2

を教えてください(あなたがこれを読んでください)。

データベースからレコードを削除しているため、更新を試みるときに更新するものはありません。新しいレコードを作成する場合や、削除したレコードを再作成する場合は、UPDATEの代わりにINSERTを実行します。

EDIT:

また、アップデートに位置番号を渡すと、削除されて表示されます。私はあなたもあなたのテーブルにレコードを配置するためにこの値を使用していると仮定しますか?テーブルとデータベースからレコードを削除すると、更新されていないため、他のレコードの位置が無効になる可能性はありますか?それは暗闇の中でのちょっとしたショットです。

+0

真実は、どのようにテーブル全体を更新して位置を修正することができますか? – Tony

関連する問題