0

行を削除するメソッドを書いていましたが、理由はわかりません。行を削除できません。これが私のメソッドです。

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 :空のbindArgs

私を助けてください!...前に感謝します1

4

1 に答える 1

1

私が使う

public void deleteEntry(long lRow) {

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

SQLite DBで行を削除します。ここで、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です。これを渡すと、表示しているレコードが削除されます。

于 2011-12-13T05:31:21.750 に答える