在扩展SQLiteOpenHelper时删除行

时间:2011-12-13 05:12:47

标签: android sqliteopenhelper

我写的方法是删除行....但是,我不知道为什么,我不能删除行.... 这是我的方法......

public void clearDatabase() {
    openDataBase();
    try {
        int id=0;
        Cursor c = myDB.rawQuery("Select id from " + tablename +" asc", null);
        if (c.getCount() > 22) {
            c.moveToFirst();
            id = c.getInt(0);

            for(int i = 0;i<11;i++){
                int x = id+i;

                myDB.execSQL("delete from "+tablename +" where id = "+x , null);
            }

        }
        else 
        c.close();
        closedb();

    } catch (SQLiteException ex) {
        ex.printStackTrace();
    }

}

这是logcat: 12-13 12:10:57.073:ERROR / AndroidRuntime(327):java.lang.RuntimeException:无法启动活动ComponentInfo {com.parser / com.parser.parse}:java.lang.IllegalArgumentException:Empty bindArgs

请帮助我!...先谢谢

1 个答案:

答案 0 :(得分:1)

我用

public void deleteEntry(long lRow) {

    ourDatabase.delete(DATABASE_TABLE, KEY_ROWID + "=" + lRow, null);
}

在我的SQLite数据库中删除一行,其中lRow从我的视图活动传递。

修改

这是我在视图活动中的删除按钮

String dRow = etSQLvRec.getText().toString();
        long lRow = Long.parseLong(dRow);

        DBase db1 = new DBase(this);

        try {
            db1.open();
            db1.deleteEntry(lRow);
            db1.close();
        } catch (Exception e) {

            String error = e.toString();
            Dialog d = new Dialog(this);
            d.setTitle("Cannot Delete");
            TextView tv = new TextView(this);
            tv.setText(error);
            d.setContentView(tv);
            d.show();
        }

etSQLvRec是一个显示我正在查看的记录的_id的TextView,我传递它以删除我正在查看的记录。