-1

我想在 android.Now 中删除 SQLITE 数据中的特定行。现在,我已经尝试只使用一个列数据,如主键,但现在我想使用列键和列名删除整行。我该怎么做?帮我

下面是我删除的语法,但它们什么也没发生?数据库处理程序.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())});
4

3 回答 3

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;
    }
于 2013-11-06T18:10:48.600 回答
0

试试这个 - 我把单引号放在双引号里,它总是对我有用 String selectQuery = "DELETE FROM Criteria WHERE criteria_eventpk ='"+id+"' AND criteria_eventpk ='"+name+"'" ;

于 2013-11-06T17:37:43.193 回答
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 的需求之一会发生变化。

于 2013-11-06T18:04:52.023 回答