我会尝试更新数据库,但无法更新。它正确插入但不更改新行。
mydatabase = getMydatabase();// this.getWritableDatabase();
ContentValues devices = new ContentValues();
devices.put(KEY_NAME, name);
devices.put(KEY_ADDRESS, address);
devices.put(KEY_GRADE, grade);
devices.put(KEY_ARRAY,gradeArray);
try{
mydatabase.insertOrThrow(DATABASE_TABLE, null, devices);
} catch (SQLiteConstraintException e) {
String where = "'"+address+"'='"+KEY_ADDRESS+"'";
mydatabase.update(DATABASE_TABLE, devices, where,null);
}
mydatabase.close();
此代码在函数中采用不同的grade和gradeArray值。它们是字符串。
数据库创建声明:
String create = String.format("CREATE TABLE %s ( %s INTEGER PRIMARY KEY AUTOINCREMENT,"+
" %s TEXT ,%s TEXT NOT NULL UNIQUE , %s TEXT NOT NULL, %s TEXT);",
DATABASE_TABLE, KEY_ROW_ID, KEY_NAME, KEY_ADDRESS, KEY_GRADE, KEY_ARRAY);
答案 0 :(得分:1)
String where = "'"+address+"'='"+KEY_ADDRESS+"'";
您在这里将文字与文字进行比较。从列名中删除''
,例如
String where = KEY_ADDRESS + "='"+address+"'";
要避免SQL注入,请使用参数:
String where = KEY_ADDRESS + "=?";
mydatabase.update(DATABASE_TABLE, devices, where, new String[] { address });