Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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_Sqlite_Android Sqlite - Fatal编程技术网

Java 为什么可以';我不能向所有列添加数据吗?

Java 为什么可以';我不能向所有列添加数据吗?,java,android,sqlite,android-sqlite,Java,Android,Sqlite,Android Sqlite,我试图将数据添加到5列中,但由于某些原因,我只能将其添加到第1列中。我错过什么了吗?在我的理解中,我告诉命令我的表名,然后它按顺序将数据输入到所有列,或者我遗漏了什么 如果有点混乱,我很抱歉,因为将两个Youtube视频合并到一个代码中并不像我想象的那么容易:( 数据库格式: package com.example.laivumusis; import android.content.ContentValues; import android.content.Context; import a

我试图将数据添加到5列中,但由于某些原因,我只能将其添加到第1列中。我错过什么了吗?在我的理解中,我告诉命令我的表名,然后它按顺序将数据输入到所有列,或者我遗漏了什么

如果有点混乱,我很抱歉,因为将两个Youtube视频合并到一个代码中并不像我想象的那么容易:(

数据库格式:

package com.example.laivumusis;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;
import com.example.laivumusis.KlausimuContracts.*;

import java.util.ArrayList;
import java.util.List;

public class KlausimynoDatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "Klausimynas.db";
    private static final int DATABASE_VERSION = 6;

    private SQLiteDatabase db;

    public KlausimynoDatabaseHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        this.db = db;

        final String SQL_CREATE_QUESTIONS_TABLE = "CREATE TABLE " +
                KlausimuLentele.TABLE_NAME + " ( " +
                KlausimuLentele._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                KlausimuLentele.COLUMN_QUESTION + " TEXT, " +
                KlausimuLentele.COLUMN_OPTION1 + " TEXT, " +
                KlausimuLentele.COLUMN_OPTION2 + " TEXT, " +
                KlausimuLentele.COLUMN_OPTION3 + " TEXT, " +
                KlausimuLentele.COLUMN_ANSWER_NR + " INTEGER" +
                ")";


        db.execSQL(SQL_CREATE_QUESTIONS_TABLE);
        fillKlausimuLentele();

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + KlausimuLentele.TABLE_NAME);
        onCreate(db);
    }

    public void addData(ContentValues contentValues){
        getWritableDatabase().insert(KlausimuContracts.KlausimuLentele.TABLE_NAME, null, contentValues);
    }

    public Cursor getListContents() {
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor data = db.rawQuery("SELECT * FROM " + KlausimuLentele.TABLE_NAME,null );
        return data;
    }


    private void fillKlausimuLentele() {
        Klausimai q1 = new Klausimai("Kelintais metais buvo išleista java proogramavimo kalba?", "1991", "1995", "1989", 1);
        addQuestion(q1);
        Klausimai q2 = new Klausimai("Ar destytojas pasigailės mūsų?", "Priklauso nuo darbo", "Priklauso nuo pingų", "Prklauso nuo nuotaikos", 1);
        addQuestion(q2);
        Klausimai q3 = new Klausimai("Kai sunervina žaidimas koks geriausias būdas iš jo išeiti?", "Alt+F4", "Quit To desktop", "Ištraukti maitinimo laida",1);
        addQuestion(q3);
        Klausimai q4 = new Klausimai("A is correct again", "A", "B", "C", 1);
        addQuestion(q4);
        Klausimai q5 = new Klausimai("B is correct agian", "A", "B", "C", 2);
        addQuestion(q5);
    }

    private void addQuestion(Klausimai klausimai) {
        ContentValues cv = new ContentValues();
        cv.put(KlausimuLentele.COLUMN_QUESTION, klausimai.getKlausimas());
        cv.put(KlausimuLentele.COLUMN_OPTION1, klausimai.getPasirinkimas1());
        cv.put(KlausimuLentele.COLUMN_OPTION2, klausimai.getPasirinkimas2());
        cv.put(KlausimuLentele.COLUMN_OPTION3, klausimai.getPasirinkimas3());
        cv.put(KlausimuLentele.COLUMN_ANSWER_NR, klausimai.getAtsakymoNr());
        db.insert(KlausimuLentele.TABLE_NAME, null, cv);

    }

    public List<Klausimai> getAllQuestions() {
        List<Klausimai> klausimuSarasas = new ArrayList<>();
        db = getReadableDatabase();
        Cursor c = db.rawQuery("SELECT * FROM " + KlausimuLentele.TABLE_NAME, null);

        if (c.moveToFirst()) {
            do {
                Klausimai klausimai = new Klausimai();
                klausimai.setKlausimas(c.getString(c.getColumnIndex(KlausimuLentele.COLUMN_QUESTION)));
                klausimai.setPasirinkimas1(c.getString(c.getColumnIndex(KlausimuLentele.COLUMN_OPTION1)));
                klausimai.setPasirinkimas2(c.getString(c.getColumnIndex(KlausimuLentele.COLUMN_OPTION2)));
                klausimai.setPasirinkimas3(c.getString(c.getColumnIndex(KlausimuLentele.COLUMN_OPTION3)));
                klausimai.setAtsakymoNr(c.getInt(c.getColumnIndex(KlausimuLentele.COLUMN_ANSWER_NR)));
                klausimuSarasas.add(klausimai);
            } while (c.moveToNext());
        }

        c.close();
        return klausimuSarasas;

    }
}

设置
ContentValues
对象中列的值时,必须使用列名作为键,如:

contentValues.put(KlausimuLentele.COLUMN_QUESTION, editTextValue);
同时将方法
addData()
更改为:

public void addData(ContentValues contentValues){
    getWritableDatabase().insert(KlausimuLentele.TABLE_NAME, null, contentValues);
}

我更改了内容值,但它认为我在这个命令中缺少了3种方法:1st
getWritableDatabase().insert(“TABLE_NAME”,“contentValues”);
2nd:
getWritableDatabase().insert(“klausimule.TABLE_NAME”,“contentValues”);
3rd:
getWritableDatabase().insert(“KlausimuContracts.KlausimuLentele.TABLE_NAME”,“”,contentValues)
至少我知道数据库表单中的这个命令应该输入我想要的数据,不要在变量名周围使用双引号。使用
klausimultele.TABLE\u NAME
klausimontracts.klausimultele.TABLE\u NAME
。我不知道哪一个包含表名。出于某种原因,仍然只添加第一个
>“editTextValue”
到我的数据库上一次你发表的评论成功了thx man刚刚没有添加toast消息弹出,现在又成功了thx man,非常感谢你抽出时间!!:)
public void addData(ContentValues contentValues){
    getWritableDatabase().insert(KlausimuLentele.TABLE_NAME, null, contentValues);
}