Удаление строки из таблицы sqlite на Android Studio не работает - PullRequest
0 голосов
/ 08 мая 2020

В студии android у меня есть таблица 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();
  }
});

В чем моя ошибка?

1 Ответ

0 голосов
/ 08 мая 2020

Я просто хочу удалить первую строку!

удаление первой строки отличается от удаления строки с id = 1; чтобы удалить первую строку, вам нужно сначала получить ее идентификатор с помощью курсора, а затем удалить его.

// 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...