как удалить строку из базы данных SQLite в android?

Вопрос:

Привет, я новичок в разработке Android. Я хочу удалить строку из базы данных. How.How я делаю это? Пожалуйста, помогите. Ниже мой код. Я пытаюсь удалить строку s из базы данных, когда нажимает кнопку.

это мой вспомогательный класс databse:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DbHelper extends SQLiteOpenHelper {
static String DATABASE_NAME="userdata";
public static final String TABLE_NAME="user";
public static final String KEY_FNAME="fname";
public static final String KEY_ID="id";
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, 1);

}

@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE="CREATE TABLE "+TABLE_NAME+" ("+KEY_ID+" INTEGER PRIMARY KEY, "+KEY_FNAME+" TEXT)";
db.execSQL(CREATE_TABLE);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
onCreate(db);

}
}

Я хочу удалить строку из базы данных.

Это то, что я делаю, чтобы удалить строку из действия.

    public void delete(String del){
SQLiteDatabase dataBase = mHelper.getWritableDatabase();
String[] whereArgs = new String[] { del };
dataBase.delete(
DbHelper.TABLE_NAME,
DbHelper.KEY_FNAME + "=?"
+whereArgs, null);
mHelper.close();
}

Но я вижу, что он выполняет описанные выше действия приложения.

Лучший ответ:

У вас есть два варианта:

  1. Удалите вопросительный знак во втором аргументе метода delete

    public void delete(String del) {
        SQLiteDatabase dataBase = mHelper.getWritableDatabase();
        String[] whereArgs = new String[] { del };
        dataBase.delete(
            DbHelper.TABLE_NAME,
            DbHelper.KEY_FNAME + "="
                +whereArgs, null);
        mHelper.close();
    }
    
  2. Переместите whereArgs в третий аргумент как @hfan

    public void delete(String del) {
        SQLiteDatabase dataBase = mHelper.getWritableDatabase();
        String[] whereArgs = new String[] { del };
        dataBase.delete(
            DbHelper.TABLE_NAME,
            DbHelper.KEY_FNAME + "=?",
            whereArgs);
        mHelper.close();
    }
    
Ответ №1

Поместите whereArgs в качестве последнего аргумента в методе delete().

dataBase.delete(
DbHelper.TABLE_NAME,
DbHelper.KEY_FNAME,
whereArgs);

Оцените статью
TechArks.Ru
Добавить комментарий