Android 安卓数据库可以';t更新

Android 安卓数据库可以';t更新,android,database,sqlite,Android,Database,Sqlite,我将尝试更新数据库,但它无法更新。它可以正确插入,但不使用新行更改行 mydatabase = getMydatabase();// this.getWritableDatabase(); ContentValues devices = new ContentValues(); devices.put(KEY_NAME, name); devices.put(KEY_ADDRESS, address); devices.put(KEY_GRADE, gra

我将尝试更新数据库,但它无法更新。它可以正确插入,但不使用新行更改行

    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);
你在比较一个文字和一个文字。从列名中删除
,例如

String where = KEY_ADDRESS + "='"+address+"'";
要避免SQL注入,请使用以下参数:

String where = KEY_ADDRESS + "=?";
mydatabase.update(DATABASE_TABLE, devices, where, new String[] { address });
谢谢字符串,其中=“地址=?”;他也为我工作。我得了4减,所以我想这个问题很快就要结束了。也许我会删除这个。
String where = KEY_ADDRESS + "=?";
mydatabase.update(DATABASE_TABLE, devices, where, new String[] { address });