如何删除android中sqlite的第一个位置的行

时间:2013-03-13 04:37:39

标签: android sqlite

如何删除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 个答案:

答案 0 :(得分:9)

使用此方法删除第一行

    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();
    }   

答案 1 :(得分:2)

编写一个函数,它将返回第一行的id。在删除功能中使用此ID。

答案 2 :(得分:0)

我建议你得到第一个位置的数据。获取光标中的数据移动到第一个位置提取id,然后调用您的方法从表中删除该ID。通过这种方式,您始终拥有第一个位置的数据。你的查询似乎写信给我。

答案 3 :(得分: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.");

}

请注意,dbHelperSQLiteOpenHelper定义为成员变量的对象。