5

androidのsqliteの最初の位置で行を削除する方法今、私は行を削除するためにこのコードを使用しています

public void delete(String id)
{
    SQLiteDatabase db = this.getReadableDatabase();
    db.delete(TABLE_CONTACTS, KEY_ID + "=?", new String[]{id});
   // db.execSQL(TABLE_CONTACTS , " ORDER BY " + KEY_ID + " ASC;");
    db.close();
}

しかし、最初の位置の行を削除したいと思います。削除が発生したときにKEY_IDが常に同じになるわけではないため

4

4 に答える 4

10

このメソッドを使用して最初の行を削除します

    public void deleteFirstRow()
{
    db.open();
    Cursor cursor = db.query(TABLE_CONTACTS, null, null, null, null, null, null); 

        if(cursor.moveToFirst()) {
            String rowId = cursor.getString(cursor.getColumnIndex(KEY_ID)); 

            db.delete(TABLE_CONTACTS, KEY_ID + "=?",  new String[]{rowId});
           }
db.close();
    }   
于 2013-03-13T05:09:47.227 に答える
2

最初の行のIDを返す関数を記述します。このIDを削除機能で使用します。

于 2013-03-13T04:51:05.613 に答える
0

最初の位置にあるデータを取得することをお勧めします。カーソル内のデータを取得して最初の位置に移動し、IDを抽出してから、メソッドを呼び出してそのIDをテーブルから削除します。このようにして、常に最初の位置にあるデータがあります。あなたの質問は私に書いてあるようです。

于 2013-03-13T04:44:27.460 に答える
0

メソッドを次のように変更します。

public void deleteFirstRow(String id) {
    int result;
    SQLiteDatabase db = dbHelper.getWritableDatabase();


    // Find all records stored in the table in which you want to delete
    // first row
    Cursor mCursor = database.query(TABLE_CONTACTS, null, null, null, null,
            null, null);

    if (mCursor.moveToFirst()) {
        result = db.delete(TABLE_CONTACTS, KEY_ID + "=?",
                mCursor.getString(mCursor
                    .getColumnIndex(KEY_ID)));

    }

    Log.i("deleteFirstRow", "Deleted " + result + " rows.");

}

は、メンバー変数として定義されたdbHelperオブジェクトであることに注意してください。SQLiteOpenHelper

于 2013-03-13T05:05:32.283 に答える