java.lang.IllegalArgumentException:无法绑定索引0处的参数,因为该索引超出范围。该语句有4个参数
Android SQLLite给了我以下错误:java.lang.IllegalArgumentException:无法绑定索引0处的参数,因为该索引超出范围。该语句有4个参数,java,android,sqlite,Java,Android,Sqlite,Android SQLLite给了我以下错误: SQLiteStatement tgStatement = dbo.compileStatement("INSERT OR REPLACE INTO Game_Team" + "(teamId, gameId, pos, score) VALUES (?,?,?,?) "); 这就是为什么我尝试这样做: tgStatement.bindLong(0, 1); 我犯了一个错误 java.lang.IllegalA
SQLiteStatement tgStatement = dbo.compileStatement("INSERT OR REPLACE INTO Game_Team" +
"(teamId, gameId, pos, score) VALUES (?,?,?,?) ");
这就是为什么我尝试这样做:
tgStatement.bindLong(0, 1);
我犯了一个错误
java.lang.IllegalArgumentException:无法在索引0处绑定参数,因为索引超出范围。
该语句有4个参数
所以,我的问题是,如果有4个参数,为什么它会抱怨索引0处的参数?怎么会超出范围?索引从1开始。所以它是setLong(1,1)参数是1索引的。索引需要从1运行到4,因此0超出范围。此技巧可能对某些人有用
SQLiteStatement tgStatement = dbo.compileStatement("INSERT OR REPLACE INTO Game_Team" +
"(teamId, gameId, pos, score) VALUES (?,?,?,?) ");
int i = 1;
tgStatement.bindLong(i++, teamId);
tgStatement.bindLong(i++, gameId);
tgStatement.bindString(i++, pos);
tgStatement.bindLong(i++, score);
当您有更多参数时,上述技巧非常有用,它可以避免索引上的缺失以及对它们进行编号。我会处理指示 哦,哇。就在我没想到的时候。我花了无数个小时试图弄明白这一点。左右搜索,然后我终于打破了。。。非常感谢你!