android sqlite - SQLiteException:没有这样的列

时间:2015-01-24 13:40:45

标签: android sqlite

好的 - 在你们开始投票并说它重复之前:) 看着这样,所以没有这样的专栏似乎没有描述我面临的问题 我的应用程序发布在谷歌Playstore上,现在我看到一些崩溃错误:

  

引起: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);
}  
}  

0 个答案:

没有答案