Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android的SQLite删除_Android_Sqlite - Fatal编程技术网

Android的SQLite删除

Android的SQLite删除,android,sqlite,Android,Sqlite,有人能解释一下删除的实际工作原理吗,因为文档没有为我提供足够的帮助。我试图做的是从我的表中删除日期与我在delete方法中提供的日期匹配的所有行 这就是我尝试过的: SQLiteDatabase db = appts.getWritableDatabase(); String whereclause = "WHERE DATE = "; long seldate = calendar.getDate()/1000; String datestodelete = new

有人能解释一下删除的实际工作原理吗,因为文档没有为我提供足够的帮助。我试图做的是从我的表中删除日期与我在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);

但是它说这个方法不接受字符串,我应该放什么呢?

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

public int delete (String table, String whereClause, String[] whereArgs)
您的
whereClause
wherergs
的格式应如下所示:

table = "table_name";
whereClause = "col1 = ? AND col2 = ?";
whereArgs = new String[] { date1, date2 };

换句话说,
字符串[]
中的值将替换
where子句中的
s。还要注意的是,您应该在
WHERE子句的开头省略
WHERE
(这将在Android执行删除操作时自动添加)。

正如我所说,我已经读过这篇文章,但我不清楚。我知道把我的表名放在哪里,但我不知道如何形成where子句,或者问String[]是什么意思好,慢慢来,String[]对这个方法有什么作用?它只是一种组织希望插入“where子句”的值的方法。如果需要,可以设置
wherergs=null
,然后设置
whereClause=“col1=date1和col2=date2”
。两者都会给你相同的结果。。。它们只是执行相同操作的不同方式。也就是说,对于复杂的“where子句”,用字符串数组中的值替换
s要比在单个
whereClause
字符串中硬编码值方便得多(至少在我看来)。