gpt4 book ai didi

java - 从 SQLITE 数据库表中提取整数时出现数字格式异常

转载 作者:行者123 更新时间:2023-12-02 02:50:14 25 4
gpt4 key购买 nike

我看过类似的问题,但没有遇到与我相同的问题。我的应用程序在 addQuestion() 方法上不断崩溃,并且我一生都无法确定问题所在。错误日志在第 176 行显示数字格式异常 int difficulty = Integer.parseInt(cursor.getString(2));我非常仔细地检查了我的代码是否存在可能的 SQL 语法错误,但找不到任何内容。这是我的 addQuestion 方法

public void addQuestion(Question question, String question_type){

SQLiteDatabase db = getWritableDatabase();

String query = "SELECT body FROM questions where body = '" +question.getBody()+"'";
Cursor cr = db.rawQuery(query, null);

if(cr.getCount() > 0){
db.close();
return;
}
else {
ContentValues cv = new ContentValues();
cv.put(type, question_type);
cv.put(body, question.getBody());
cv.put(answer, question.getAnswer());
cv.put(difficulty, question.getDifficulty());

try {
db.insert(questions_table, null, cv);
} catch (SQLiteException e) {
e.getMessage();
}
}
db.close();
}

这是我的 getQuestion by type 方法:

public Question getQuestionByType(String type){
SQLiteDatabase db = getWritableDatabase();
String query = "SELECT " + body + "," + answer + "," + difficulty + " FROM " + questions_table + " WHERE "
+ this.type + " ='" + type+"';";

Cursor cursor = db.rawQuery(query, null);
cursor.moveToFirst();
String body = cursor.getString(0);
String answer = cursor.getString(1);
int difficulty = Integer.parseInt(cursor.getString(2));
db.close();

return new Question(type, body, answer, difficulty);
}

这是日志输出

   java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:483)
at java.lang.Integer.parseInt(Integer.java:556)
at com.maz.quizzdat.DbHandler.getQuestionByType(DbHandler.java:176)
at com.maz.quizzdat.MainActivity$1.onClick(MainActivity.java:47)

感谢任何帮助。

编辑:对于那些可能遇到类似情况的人,您不能使用 Integer.parseInt();在这种特殊情况下,在字符串上,即使该字符串实际上是一个数字。使用curser.getInt()而不是Integer.parseInt(curser.getString())

最佳答案

尝试使用cursor.getInt(2)而不是getString(2),因为该列包含整数?

https://developer.android.com/reference/android/database/Cursor.html#getInt(int)

编辑:parseInt() 显然不再需要了。

关于java - 从 SQLITE 数据库表中提取整数时出现数字格式异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43969426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com