Привет, я новичок в разработке 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();
}
Но я вижу, что он выполняет описанные выше действия приложения.
У вас есть два варианта:
-
Удалите вопросительный знак во втором аргументе метода
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(); }
-
Переместите
whereArgs
в третий аргумент как @hfanpublic void delete(String del) { SQLiteDatabase dataBase = mHelper.getWritableDatabase(); String[] whereArgs = new String[] { del }; dataBase.delete( DbHelper.TABLE_NAME, DbHelper.KEY_FNAME + "=?", whereArgs); mHelper.close(); }
Поместите whereArgs в качестве последнего аргумента в методе delete().
dataBase.delete(
DbHelper.TABLE_NAME,
DbHelper.KEY_FNAME,
whereArgs);