我想按位置删除行。我写了这个,但它不起作用。现在它按ID而不是按位置删除一行。我不知道如何编写该查询。
例如,这是我的表格:
position | name
1 | aaaa
2 | bbbb
3 | cccc
4 | dddd
现在我要删除第3行。我想得到一个这样的表:
position | name
1 | aaaa
2 | bbbb
3 | dddd
这是主要活动类的删除方法:
public void onClickBtnDelete(View view) {
SparseBooleanArray checkedItemPositions = getListView()
.getCheckedItemPositions();
int itemCount = getListView().getCount();
int[] tab = new int[itemCount];
for (int i = itemCount - 1; i >= 0; i--){
tab[i] = itemCount - i;
if (checkedItemPositions.get(i)) {
adapter.remove(list.get(i));
db.deleteMyPlace(new MyPlacesTable(tab[i]));
}
}
这是我从DatabaseHandler中删除的方法:
public void deleteMyPlace(MyPlacesTable myPlace) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_MY_PLACES, KEY_ID + " = ?",
new String[] { String.valueOf(myPlace.getID()) });
db.close();
}
构造函数,getter和setter:
public MyPlacesTable(int id){
this._id = id;
}
public int getID(){
return this._id;
}
public void setID(int id){
this._id = id;
}
你能帮助我吗?
答案 0 :(得分:0)
尝试使用此代码删除db中的行。
private SQLiteDatabase db;
db = DBHelper.getWritableDatabase();
db.delete("TABLE_NAME", "_id="+deleteId, null);
将已删除的ID替换为相应的" i"值。
答案 1 :(得分:0)
试试这个
public static void DeleteData(SQLiteDatabase db, String TableName,String userfield,String userid)
{
String table_name = TableName;
String where =userfield + "='" +userid+"'";
String whereArgs[] = null;
db.delete(table_name, where, whereArgs);
}
答案 2 :(得分:0)
我知道这将删除列中的信息,这可能有助于务实地找到解决方案。
/* Delete rows */
delete from /*table*/ where /*column*/ between 51 and 129