这是我之前在db.update上的问题。
我使用了代码Karakuri的建议,并将数据库适配器方法修改为以下内容。 请注意,fma是一个整数(实际上是34)数据库适配器来自mainactivity
public void updateJ(int fma){
String where = "coli = ?";
ContentValues arw = new ContentValues();
cv.put("coli", fma);
the below no longer used but null the last argument instead
// String jusi = Integer.toString(fma);
// String[] whereArgs = new String[] {jusi};
//Log.w(TAG, "whereArgs = " + whereArgs);
db.update("superTable", cv, where, null);
}
它仍然不起作用。 //来自之前的'log.w读作06-02 16:24:31.695:W / DBA信息(18940):whereArgs = [Ljava.lang.String; @ 5299a034'
//但在阅读在线教程和Android网站以及Karakuri的解释后,我有一个问题,第四个参数whereArgs假设是String []而不是String或int。但是superTable中的'coli'列是一个整数设计。我如何让它接受一个int而不是一个String []?
我用null替换了whereargs,并且基本上使用int fma变量直接使用cv.put,但它仍然不起作用?在放入之前将int转换为字符串,它也不起作用。
答案 0 :(得分:0)
它仍然不起作用。 //来自之前的'log.w读作06-02 16:24:31.695:W / DBA信息(18940):whereArgs = [Ljava.lang.String; @ 5299a034'
您没有将whereArgs
传递给update()
,这就是为什么它“不起作用”。变化
db.update("superTable", cv, where, null);
到
db.update("superTable", cv, where, whereArgs);
日志输出是在toString()
字符串数组上调用String[]
时所期望的。