嗨,我是Android开发新手。我想从数据库中删除一个字符串。怎么样。我怎么做?请帮忙。下面是我的代码。我按下按钮时尝试从数据库中删除字符串。
这是我的数据库助手类:
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();
}
但是我看到它执行上面的方法app崩溃。
答案 0 :(得分: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();
}
将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 :(得分:0)
将whereArgs作为delete()方法中的最后一个参数。
dataBase.delete(
DbHelper.TABLE_NAME,
DbHelper.KEY_FNAME,
whereArgs);