适用于Android的SQLite删除

nex*_*490 2 sqlite android

有人可以解释删除实际上是如何工作的,因为文档没有为我提供足够的帮助.我要做的是删除我的表中的所有行,其中日期与我在delete方法中提供的日期相匹配.

这就是我尝试过的:

SQLiteDatabase db = appts.getWritableDatabase();

    String whereclause = "WHERE DATE = ";

    long seldate = calendar.getDate()/1000;
    String datestodelete = new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date (seldate*1000));

    db.delete(TABLE_NAME, whereclause, datestodelete);
Run Code Online (Sandbox Code Playgroud)

但它表示String String String不接受该方法,我会把它放入什么?

Ale*_*ood 8

第三个参数应该是类型String[],而不是String:

public int delete (String table, String whereClause, String[] whereArgs)
Run Code Online (Sandbox Code Playgroud)

table,whereClausewhereArgs格式应为如下:

table = "table_name";
whereClause = "col1 = ? AND col2 = ?";
whereArgs = new String[] { date1, date2 };
Run Code Online (Sandbox Code Playgroud)

换句话说,String[]将替换?你的s中的值whereClause.另请注意,您应该省略您WHERE的开头whereClause(这将在Android执行删除时自动添加).