Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为测试应用程序向数据库添加更多问题_Java_Android_Database - Fatal编程技术网

Java 为测试应用程序向数据库添加更多问题

Java 为测试应用程序向数据库添加更多问题,java,android,database,Java,Android,Database,我正在开发一个android学习应用程序,我遇到了一个问题。我无法更新数据库中的问题。它只能显示数据库中的前五个问题。这是我的数据库代码,有人能帮我吗?谢谢 package com.example.learningapp.test; private static final int DATABASE_VERSION = 1; // Database Name private static final String DATABASE_NAME = "Test"; // tasks table n

我正在开发一个android学习应用程序,我遇到了一个问题。我无法更新数据库中的问题。它只能显示数据库中的前五个问题。这是我的数据库代码,有人能帮我吗?谢谢

package com.example.learningapp.test;

private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "Test";
// tasks table name
private static final String TABLE_QUEST = "quest";
// tasks Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_QUES = "question";
private static final String KEY_ANSWER = "answer"; //correct option
private static final String KEY_ans1= "Ans1"; //option a
private static final String KEY_ans2= "Ans2"; //option b
private static final String KEY_ans3= "Ans3"; //option c
private SQLiteDatabase dbase;
public DbHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
    dbase=db;
    String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_QUEST + " ( "
            + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_QUES
            + " TEXT, " + KEY_ANSWER+ " TEXT, "+KEY_ans1 +" TEXT, "
            +KEY_ans2 +" TEXT, "+KEY_ans3+" TEXT)";
    db.execSQL(sql);        
    addQuestions();
    //db.close();
}

private void addQuestions()
{
    Question q1=new Question("Tumbuhan memerlukan cahaya matahari untuk" +
            " _________________.","Bernafas", "Hidup", "Membuat Makanan", "Membuat Makanan");
    this.addQuestion(q1);
    Question q2=new Question("Manusia memerlukan empat keperluan asas, " +
            "terdiri daripada", "Udara, Makanan, Cahaya Matahari, Air", "Air, Udara, Makanan, Tempat Perlindungan", 
            "Udara, Tempat Perlindungan, Cahaya Matahari, Air", "Air, Udara, Makanan, Tempat Perlindungan");
    this.addQuestion(q2);
    Question q3=new Question("Sisa-sisa makanan disingkirkan keluar melalui dubur" +
            " sebagai tinja.Proses ini dinamakan ______________?","Penyahtinjaan", "Perkumuhan","Pernafasan","Penyahtinjaan");
    this.addQuestion(q3);
    Question q4=new Question("Semasa menarik nafas, dada akan _____________ dan _____________." +
            " Pada masa yang sama, udara masuk ke peparu.", "naik, mengembang", "naik turun, menghempis", "naik, menghempis","naik, mengembang");
    this.addQuestion(q4);
    Question q5=new Question("Berikut adalah cara tumbuhan melindungi diri" +
            " daripada musuh, KECUALI","Bergetah","Beracun","Daun jejarum","Daun jejarum");
    this.addQuestion(q5);
    Question q6= new Question("Pilihkan jawapan proses kitar hidup" +
            "rama-rama yang betul.", "telur-> kepompong-> larva->rama-rama dewasa", "telur-> larva-> kepompong-> rama-rama dewasa",
            "telur-> pupa-> larva -> rama-rama dewasa", "telur-> larva-> kepompong-> rama-rama dewasa");
    this.addQuestion(q6);
    Question q7= new Question("Pilihkan jawapan proses kitar hidup" +
            "katak yang betul.", "telur-> berudu-> katak muda-> katak dewasa", "telur-> katak muda-> katak dewasa-> kepompong",
            "telur-> pupa-> katak muda ->katak dewasa", "telur-> berudu-> katak muda-> katak dewasa");
    this.addQuestion(q7);
}

public void onUpgrade(SQLiteDatabase db, int oldV, int newV) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_QUEST);
    // Create tables again
    onCreate(db);
}
// Adding new question
public void addQuestion(Question quest) {
    //SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(KEY_QUES, quest.getQUESTION()); 
    values.put(KEY_ANSWER, quest.getANSWER());
    values.put(KEY_ans1, quest.getans1());
    values.put(KEY_ans2, quest.getans2());
    values.put(KEY_ans3, quest.getans3());
    // Inserting Row
    dbase.insert(TABLE_QUEST, null, values);        
}
public List<Question> getAllQuestions() {
    List<Question> quesList = new ArrayList<Question>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_QUEST;
    dbase=this.getReadableDatabase();
    Cursor cursor = dbase.rawQuery(selectQuery, null);
    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            Question quest = new Question();
            quest.setID(cursor.getInt(0));
            quest.setQUESTION(cursor.getString(1));
            quest.setANSWER(cursor.getString(2));
            quest.setans1(cursor.getString(3));
            quest.setans2(cursor.getString(4));
            quest.setans3(cursor.getString(5));
            quesList.add(quest);
        } while (cursor.moveToNext());
    }

    // return quest list
    return quesList;
}

public int rowcount()
{
    int row=0;
    String selectQuery = "SELECT  * FROM " + TABLE_QUEST;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    row=cursor.getCount();
    return row;
}
package com.example.learningapp.test;
私有静态最终int数据库_VERSION=1;
//数据库名称
私有静态最终字符串数据库\u NAME=“Test”;
//任务表名称
私有静态最终字符串表_QUEST=“QUEST”;
//任务表列名称
私有静态最终字符串密钥\u ID=“ID”;
私有静态最终字符串KEY_QUES=“question”;
私有静态最终字符串键\u ANSWER=“ANSWER”//正确的选择
私有静态最终字符串密钥\u ans1=“ans1”//方案a
私有静态最终字符串密钥\u ans2=“ans2”//方案b
私有静态最终字符串密钥\u ans3=“ans3”//备选案文c
专用数据库数据库;
公共DbHelper(上下文){
super(上下文、数据库名称、null、数据库版本);
}
@凌驾
public void onCreate(SQLiteDatabase db){
dbase=db;
String sql=“创建不存在的表格”+表格任务+”(“
+密钥ID+“整数主键自动递增”+“密钥”
+“文本,”+KEY\U ans1+“文本,”+KEY\U ans1+“文本,”
+键ans2+“文本”+“键ans3+“文本”);
execSQL(sql);
添加问题();
//db.close();
}
私人问题()
{
问题q1=新问题(“Tumbuhan memerlukan cahaya matahari untuk”+
“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;
这个问题(q1);
问题q2=新问题(“Manusia memerlukan empat keperluan asas,”+
“特迪里·达里帕达”、“乌达拉、马卡南、卡哈亚·马塔哈里、空气”、“空气、乌达拉、马卡南、坦帕·佩林邓根”,
“乌达拉、佩林顿安、卡哈亚·马塔哈里、空气”、“空气、乌达拉、马卡南、佩林顿安”);
这个问题(q2);
问题q3=新问题(“Sisa Sisa makanan Desigkirkan keluar melalui dubur”+
“这是一个非常简单的过程”、“非常简单”、“非常简单”、“非常简单”);
这个问题(第三季度);
问题q4=新问题(“Semasa menarik nafas,dada akan\uuuuuuuuuuuuuuuuu\uuuuuuu\uuuuuuuu\uuuuuuuuuuu\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu+
“这是一个很好的例子,我们可以说是一个很好的例子。”,“奈克,梦境榜”,“奈克图伦,梦境榜”,“奈克,梦境榜”,“奈克,梦境榜”);
这个问题(第四季度);
问题q5=新问题(“贝里库特·阿达拉·卡拉·图姆布汉·梅林登吉·迪里”+
“daripada musuh,KECUALI”,“Bergetah”,“Beracun”,“Daun jejarum”,“Daun jejarum”);
这个问题(q5);
问题q6=新问题(“Pilihkan jawapan Prosses kitar hidup”+
“罗摩-罗摩-杨-贝图尔”,“泰卢尔->基蓬蓬->幼虫->罗摩-罗摩-德瓦萨”,“泰卢尔->幼虫->基蓬蓬->罗摩-德瓦萨”,
“特鲁尔->蛹->幼虫->拉玛拉玛德瓦萨”,“特鲁尔->幼虫->基蓬蓬->拉玛拉玛德瓦萨”);
这个问题(q6);
问题q7=新问题(“Pilihkan jawapan Prosses kitar hidup”+
“卡塔克·杨·贝图尔”,“特鲁尔->贝鲁杜->卡塔克·穆达->卡塔克·德瓦萨”,“特鲁尔->卡塔克·穆达->卡塔克·德瓦萨->基蓬蓬”,
“telur->pupa->katak muda->katak dewasa”,“telur->berudu->katak muda->katak dewasa”);
这个问题(q7);
}
public void onUpgrade(SQLiteDatabase db、intoldv、intnewv){
//删除旧表(如果存在)
db.execSQL(“如果存在删除表”+表任务);
//再次创建表
onCreate(db);
}
//添加新问题
公共问题(问题探索){
//SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
value.put(KEY_QUES,quest.getQUESTION());
value.put(KEY_ANSWER,quest.getANSWER());
value.put(KEY_ans1,quest.getans1());
value.put(KEY_ans2,quest.getans2());
value.put(KEY_ans3,quest.getans3());
//插入行
insert(TABLE_QUEST,null,value);
}
公共列表getAllQuestions(){
List quesList=new ArrayList();
//选择所有查询
String selectQuery=“SELECT*FROM”+表格任务;
dbase=this.getReadableDatabase();
Cursor Cursor=dbase.rawQuery(selectQuery,null);
//循环遍历所有行并添加到列表
if(cursor.moveToFirst()){
做{
问题探索=新问题();
setID(cursor.getInt(0));
setquest.setQUESTION(cursor.getString(1));
setANSWER(cursor.getString(2));
setans1(cursor.getString(3));
setans2(cursor.getString(4));
setans3(cursor.getString(5));
添加(任务);
}while(cursor.moveToNext());
}
//返回任务列表
返回任务列表;
}
公共整数行计数()
{
int行=0;
String selectQuery=“SELECT*FROM”+表格任务;
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
row=cursor.getCount();
返回行;
}

}您正在
onCreate
中添加问题。它在第一次启动时已被调用。看起来你后来又添加了一个问题。您可以升级数据库或卸载应用程序并再次安装,以触发第二次数据库创建。无论如何,在
onCreate

中填写您的值是不好的做法。您正在
onCreate
中添加您的问题。它在第一次启动时已被调用。看起来你后来又添加了一个问题。您可以升级数据库或卸载应用程序并再次安装,以触发第二次数据库创建。无论如何,在
onCreate

中填写您的值不是一个好的做法。嗨,Evgeny…谢谢您的建议。但是我已经尝试将数据库版本从1更新到2,但它似乎不起作用。它仍然输出来自数据库的前五个问题。发布一个屏幕截图可能吗?你是说我们的屏幕截图