Android的SQLite删除
有人能解释一下删除的实际工作原理吗,因为文档没有为我提供足够的帮助。我试图做的是从我的表中删除日期与我在delete方法中提供的日期匹配的所有行 这就是我尝试过的:Android的SQLite删除,android,sqlite,Android,Sqlite,有人能解释一下删除的实际工作原理吗,因为文档没有为我提供足够的帮助。我试图做的是从我的表中删除日期与我在delete方法中提供的日期匹配的所有行 这就是我尝试过的: SQLiteDatabase db = appts.getWritableDatabase(); String whereclause = "WHERE DATE = "; long seldate = calendar.getDate()/1000; String datestodelete = new
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
字符串中硬编码值方便得多(至少在我看来)。