[英]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.