在Android Studio上,从sqlite表中删除一行是不起作用的



在android studio中,我有一个sqlite表DatabaseHelper,它被创建为:

public class DatabaseHelper extends SQLiteOpenHelper {
private static final int BD_version = 1;
public static  final String TABLE_NOMBRE = "SQLiteGPS";
public static final  String COLUMN_ID = "id";
public static final  String COLUMN_DIRECCION = "direccion";
public DatabaseHelper(Context context) {
super(context, TABLE_NOMBRE, null, BD_version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = " CREATE TABLE " + TABLE_NOMBRE
+ "(" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "
+ COLUMN_DIRECCION +  " VARCHAR); ";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS SQLiteGPS";
db.execSQL(sql);
onCreate(db);
}
public  boolean addData (String insertar){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COLUMN_DIRECCION,insertar);
long result = db.insert(TABLE_NOMBRE,null,contentValues);
if(result == -1){
return  false;
}else{
return true;
}
}
public Cursor getListaContenidos(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor data = db.rawQuery("SELECT * FROM "+ TABLE_NOMBRE,null);
return data;
}
public void deleteItemDB(String itemID){
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL("DELETE FROM " + TABLE_NOMBRE + " WHERE " + COLUMN_DIRECCION + "='" + itemID + "'");
db.close();
}
}

我只需要删除第一行,因为我正在使用这个代码,但它不起作用,我没有错误,只有一行没有删除

DatabaseHelper miBD = new DatabaseHelper(this);
bBorrarItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
miBD.deleteItemDB("1"); // set Dynamic
Toast.makeText(MainActivity.this,"Borrado el 1er item de la Tabla",Toast.LENGTH_LONG).show();
}
});

我犯了什么错?

我只想删除第一行!

删除第一行与删除id为1的行不同;为了删除第一行,您需要首先使用光标获取其id,然后删除它。

// Get the cursor 
Cursor cursor = getListaContenidos();
// Move to the first row
cursor.moveToFirst();
// Get the column ID of the first row
int id = cursor.getInt(cursor.getColumnIndex(COLUMN_DIRECCION));
// perfrom delete
deleteItemDB(String.valueOf(id));

最新更新