如何删除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不会一直相同
答案 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.");
}
请注意,dbHelper
是SQLiteOpenHelper
定义为成员变量的对象。