Java 使用自定义查询和rawQuery或execSQL更新不起作用

Java 使用自定义查询和rawQuery或execSQL更新不起作用,java,android,sql,sql-update,Java,Android,Sql,Sql Update,我正在使用个人查询更新值​​在表中,在本例中增加某些列的值。 例如,我会做一些类似于: UPDATE statistica SET 1PF = 1PF + ? WHERE id_statistica = ?; 我的代码如下: String sql = "UPDATE " + StatisticaTable.TABLE_NAME + " SET " + StatisticaTable._1PF + " = " + StatisticaTable._1PF + " + ?, " +

我正在使用个人查询更新值​​在表中,在本例中增加某些列的值。 例如,我会做一些类似于:

UPDATE statistica SET 1PF = 1PF + ? WHERE id_statistica = ?;
我的代码如下:

String sql = "UPDATE " + StatisticaTable.TABLE_NAME + " SET " + StatisticaTable._1PF + " = " + StatisticaTable._1PF + " + ?, " +
                                                                    StatisticaTable._1PN + " = " + StatisticaTable._1PN + " + ?, " + 
                                                                    StatisticaTable._2PF + " = " + StatisticaTable._2PF + " + ?, " +
                                                                    StatisticaTable._2PN + " = " + StatisticaTable._2PN + " + ?, " +
                                                                    StatisticaTable._3PF + " = " + StatisticaTable._3PF + " + ?, " +
                                                                    StatisticaTable._3PN + " = " + StatisticaTable._3PN + " + ?, " +
                                                                    StatisticaTable.RD + " = " + StatisticaTable.RD + " + ?, " + StatisticaTable.RO + " = " + StatisticaTable.RO + " + ?, " +
                                                                    StatisticaTable.PR + " = " + StatisticaTable.PR + " + ?, " + StatisticaTable.AS + " = " + StatisticaTable.AS + " + ?, " +
                                                                    StatisticaTable.BK + " = " + StatisticaTable.BK + " + ?, " + StatisticaTable.FS + " = " + StatisticaTable.FS + " + ?, " +
                                                                    StatisticaTable.PP + " = " + StatisticaTable.PP + " + ?, " + StatisticaTable.FP + " = " + StatisticaTable.FP + " + ? " +
                                                                    "WHERE " + GiocatoreTable.ID_GIOCATORE + "= ? AND + " + StatisticaTable.ID_PARTITA + "= ?;";

    String[] parameter = new String[] {String.valueOf(values.get1pf()), String.valueOf(values.get1pn()), String.valueOf(values.get2pf()), String.valueOf(values.get2pn()), 
                                       String.valueOf(values.get3pf()), String.valueOf(values.get3pn()), String.valueOf(values.getRD()), String.valueOf(values.getRO()), String.valueOf(values.getPR()), 
                                       String.valueOf(values.getAS()), String.valueOf(values.getBK()), String.valueOf(values.getFS()), 
                                       String.valueOf(values.getPP()), String.valueOf(values.getFP()), String.valueOf(values.getIDGiocatore()), String.valueOf(values.getIDPartita())};

_dbHelper.getWritableDatabase().execSQL(sql, parameter);
基本上代码是这样的。。。但不更新任何内容(使用execSQL和rawQuery),尽管参数传递正确并且sql字符串的格式正确。。。
我不明白哪里出了问题……

如果您没有遇到任何SQL异常,那么也许您应该关注WHERE语句

"WHERE " + GiocatoreTable.ID_GIOCATORE + "= ? AND + " + StatisticaTable.ID_PARTITA + "= ?;";
SQLite有时可能有点棘手,因为它只使用五种基本数据类型。 我注意到,如果存储的数据库值和 搜索参数的类型不同。尝试转换ID_GIOCATORE参数 将ID_PARTITA参数转换为数据库中使用的本机类型


谢谢,您帮助我们了解了如何更改查询。我通过将传递的参数(在数据库中都是NUMERIC类型)从类型字符串[]更改为类型对象[]来解决这个问题。现在查询工作正常了!