简体   繁体   English

无法从 1 行 7 列的 window 中读取第 0 行、第 4294967295 列

[英]Failed to read row 0, column 4294967295 from a window with 1 rows, 7 columns

I used this code but whenever I try to click the button the error "Failed to read row 0, column 4294967295 from a window with 1 rows, 7 columns" always appear on logcat and the app goes back to the previous layout我使用了这段代码,但每当我尝试单击按钮时,logcat 上总是会出现错误“无法从 window 中读取第 0 行,第 4294967295 列,其中 1 行,7 列”,并且应用程序返回到以前的布局

This database base is for the questions in my database and i want it to display on the buttons该数据库用于我数据库中的问题,我希望它显示在按钮上

public class MyDataBaseHelper extends SQLiteOpenHelper {
    public static final String DBNAME = "Login.db";
    private static final String TABLE_QUESTION = "questionbank";
    private static final String KEY_ID = "id";
    private static final String QUESTION = "question";
    private static final String CHOICE1 = "choice1";
    private static final String CHOICE2 = "choice2";
    private static final String CHOICE3 = "choice3";
    private static final String CHOICE4 = "choice4";
    private static final String ANSWER = "answer";
    public MyDataBaseHelper(Context context) {
        super(context, "Login.db", null, 1);
    }
    @Override
    public void onCreate(SQLiteDatabase MyDB) {
        MyDB.execSQL("create Table users(name TEXT primary key, age TEXT, school
                TEXT)");
        MyDB.execSQL("create Table questionbank(id INTEGER PRIMARY KEY
                AUTOINCREMENT, question TEXT, choice1 TEXT, choice2 TEXT, choice3 TEXT, choice4
                TEXT, answer TEXT)");
    }
    @Override
    public void onUpgrade(SQLiteDatabase MyDB, int i, int i1) {
        MyDB.execSQL("drop Table if exists users");
        MyDB.execSQL("DROP TABLE IF EXIST questionbank");
        onCreate(MyDB);
    }
    public long addInitialQuestion(Question question) {
        SQLiteDatabase MyDB = this.getWritableDatabase();
        ContentValues questions = new ContentValues();
        questions.put(QUESTION, question.getQuestion());
        questions.put(CHOICE1, question.getChoice(0));
        questions.put(CHOICE2, question.getChoice(1));
        questions.put(CHOICE3, question.getChoice(2));
        questions.put(CHOICE4, question.getChoice(3));
        questions.put(ANSWER, question.getAnswer());
        long insert = MyDB.insert(TABLE_QUESTION, null, questions);
        return insert;
    }
    public Boolean insertuserdata(String name, String age, String school) {
        SQLiteDatabase MyDB = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put("name", name);
        contentValues.put("age", age);
        contentValues.put("school", school);
        long result = MyDB.insert("users", null, contentValues);
        if (result == -1) {
            return false;
        } else {
            return true;
        }
    }
    public List<Question> getAllQuestionsList () {
        List<Question> questionArrayList = new ArrayList<>();
        String selectQuery = " SELECT * FROM " + TABLE_QUESTION;
        SQLiteDatabase MyDB = this.getReadableDatabase();
        Cursor c = MyDB.rawQuery(selectQuery, null);
        if (c.moveToFirst()) {
            do {
                Question question = new Question();
                String questText = c.getString(c.getColumnIndex(QUESTION));
                question.setQuestion(questText);
                String choice1Text = c.getString(c.getColumnIndex(CHOICE1));
                question.setChoice(0, choice1Text);
                String choice2Text = c.getString(c.getColumnIndex(CHOICE2));
                question.setChoice(1, choice2Text);
                String choice3Text = c.getString(c.getColumnIndex(CHOICE3));
                question.setChoice(2, choice3Text);
                String choice4Text = c.getString(c.getColumnIndex(CHOICE4));
                question.setChoice(3, choice4Text);
                String answerText = c.getString(c.getColumnIndex(ANSWER));
                question.setAnswer(answerText);
                questionArrayList.add(question);
            }while (c.moveToNext());
            Collections.shuffle(questionArrayList);
        }
        return questionArrayList;
    }
}

It seems like you are reading some column that is not existing.您似乎正在阅读一些不存在的专栏。 Could it be that you changed your column names, but did not delete the application before reinstalling it?可能是您更改了列名,但在重新安装之前没有删除该应用程序吗? I would uninstall the application manually on the phone/emulator and reinstall it to check if the error is gone.我会在手机/模拟器上手动卸载应用程序并重新安装它以检查错误是否消失。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM