引起:android.database.sqlite.SQLiteException:没有这样的列:quizid(代码1):,同时编译:通过quizid从测验组中选择quizid,count(qid)
我已经在我的手机和Android开发工具包的调试模式下测试了相同的功能,它适用于我 然而,对于少数用户来说似乎失败了
一些差异/附加指针
数据库中的字段名称是' quizId'在我的查询中,它是' quizid'
是的它应该是相同的情况,我将在我的更正版本中纠正它 - 但这真的是一个问题 - 我不认为sqllite中的字段名称区分大小写
我也应该说 - 数据库字段' quizId'是sqllite数据库中现有表的附加字段
所以人们在旧版本的应用程序中已经有了不同的表定义
这与此有关 - DATABASE_VERSION
我不记得我是否改变了它的版本(目前它是2),不幸的是我没有保留早期版本
谢谢!
以下是相关代码:
public class QuizDao extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 2;
private static final String TABLE_QUIZ = "quiz";
private static final String CREATE_TABLE_QUIZ = "CREATE TABLE " +
TABLE_QUIZ + "(" + " qid INTEGER PRIMARY KEY," + " quizId INTEGER " + ");";
public QuizDao (Context context) {
super(context, "quiz.db", null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase dataBase) {
try {
dataBase.execSQL(CREATE_TABLE_QUIZ);
} catch (SQLiteException e) {
}
}
@Override
public void onUpgrade(SQLiteDatabase dataBase, int oldVersion,
int newVersion) {
dataBase.execSQL("DROP TABLE IF EXISTS " + TABLE_QUIZ);
onCreate(dataBase);
}
}