更新SQLite数据库(java)中的整数值

更新SQLite数据库(java)中的整数值,java,android,sqlite,integer,Java,Android,Sqlite,Integer,我是SQLite数据库的新手,所以请原谅我 我有一个整数值的数据库。当使用下面的代码更新数据库中的一行时,有一些事情我不明白。其中rgs是String[]类型,尽管您要查找的值是整数,所以我希望应该传入int[] SQ.update(table, values, whereClause, whereArgs) 我哪里出错了 示例代码: public void changeOneIntoTwo(DatabaseOperations dop) { SQLiteDatabase SQ

我是SQLite数据库的新手,所以请原谅我

我有一个整数值的数据库。当使用下面的代码更新数据库中的一行时,有一些事情我不明白。其中rgs是String[]类型,尽管您要查找的值是整数,所以我希望应该传入int[]

    SQ.update(table, values, whereClause, whereArgs)
我哪里出错了

示例代码:

public void changeOneIntoTwo(DatabaseOperations dop) {
    SQLiteDatabase SQ = dop.getWritableDatabase();
    String selection = "ValuesColumn = ?";
    String[] args = {"1"};
    ContentValues cv = new ContentValues();
    cv.put("ValuesColumn", 2);
    SQ.update("MyTable", cv, selection, args);
}

selection是您在Sql查询的where子句中设置的条件,args被替换为什么?有选择

例如:假设您需要sql查询从Mytable中选择*,其中ValuesColumn='1'和Name='MVB'。所以在这种情况下

字符串选择=值列=?名称=

字符串[]args={1,MVB}


看起来它不支持int作为参数化参数。只需执行selection=ValuesColumn=+Integer.toStringmyNumber,应该是安全的;只要传递字符串数组,sqlite就会知道它是否是int。在sql中,字符串1和int 1都正确地表示为“1”。所以不用担心,sql引擎会知道什么列的类型。Java非常精确,我有点失望sqlite突然将字符串解释为int。。。不过还是要谢谢你@njzk2这是错误的;仅当列具有数字时,比较才会起作用。