我想在android.Now中删除SQLITE数据中的特定行,我已经尝试只使用一个列数据,如主键,但现在我想使用列键和列名删除整行。我怎么会这样做?帮帮我
以下是我删除的语法,但它们什么都没发生? DatabaseHandler.java
public Cursor delete(String id, String name){
SQLiteDatabase data=this.getWritableDatabase();
String selectQuery = "DELETE FROM Criteria WHERE criteria_eventpk ="+"'"+id+"' AND criteria_eventpk ="+"'"+name+"'" ;
Cursor idupdate = data.rawQuery(selectQuery, null);
data.close();
return idupdate;
我使用rawQuery是因为我尝试了db.delete,但只允许一个数据。所以我尝试使用rawQuery。
接下来,按钮中的代码在我的MainActivity中删除
evcri_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
db.delete(evpk.getText().toString(), cripk.getText().toString());
}
});
我认为选择光标时做出了错误的选择,任何人都可以帮助我吗?我猜需要自定义查询但我需要你的帮助。帮助我..
我试试这个,但它仍然不起作用。在我使用的任何错误的代码中?
public void delete(Criteria cri, Criteria pk){
SQLiteDatabase data=this.getWritableDatabase();
data.delete(TABLE_CRITERIA,"criteria_name=? AND criteria_eventpk=?", new String[]{String.valueOf(cri.get_criname()),String.valueOf(pk.get_eventpk())});
data.close();
在我的删除按钮
中 db.delete(evpk.getText().toString(), cripk.getText().toString());
但是当我尝试下面的代码时,它可以工作,但只给出了id,我希望给定的是id和name ..
data.delete(TABLE_CRITERIA,"criteria_name=?, new String[]{String.valueOf(cri.get_criname())});
答案 0 :(得分:2)
我使用rawQuery是因为我尝试了db.delete,但只允许一个数据。所以我尝试使用rawQuery。
此信息不正确。 db.delete方法允许多个参数:
public int delete(String id, String name){
SQLiteDatabase data = this.getWritableDatabase();
String table = "Criteria";
String whereClause = "criteria_eventpk=? AND criteria_eventpk =?" ;
String whereArgs[] = new String[] {id, name};
int count = data.delete(table, whereClause, whereArgs);
data.close();
return count;
}
答案 1 :(得分:0)
试试这个 - 我把单引号放在双引号内,它总是适用于我 String selectQuery =“DELETE FROM Criteria WHERE criteria_eventpk ='”+ id +“'AND criteria_eventpk ='”+ name +“'”;
答案 2 :(得分:0)
您的陈述形式为:
DELETE FROM Criteria WHERE criteria_eventpk = /id/ AND criteria_eventpk = /name/
因此criteria_eventpk必须等于id的值和name的值。那只会是id和name相同的情况,我想通常不会这样吗?
您是否要删除criteria_eventpk等于id或name的位置?如果是,则将AND更改为OR。或者你的意思是检查行中的两个不同的列?在这种情况下,其中一个criteria_eventpk需要改变。