如何在 sqlite android studio 中插入多个数据

How to insert multiple data in sqlite android studio

你好,我是 android 工作室的新手,我有 2 个 table 数据库,第一个 table 是 budaya,第二个是 sejarah。当我尝试使用值将数据插入 tables budaya 时,它起作用了,但是当我想将数据插入 table sejarah 时,它没有显示数据,请帮助我。

这是我的错误代码

public class Database extends SQLiteOpenHelper{
    final static String DB_NAME = "db_budaya";

    public Database(Context context) {
        super(context, DB_NAME, null, 8);
// TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE IF NOT EXISTS budaya(_id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, kategori TEXT, deskripsi TEXT, img BLOB)";
        db.execSQL(sql);
        
        String sql1 = "CREATE TABLE IF NOT EXISTS sejarah(_id INTEGER PRIMARY KEY AUTOINCREMENT, materi TEXT)";
        db.execSQL(sql1);
        
        ContentValues values = new ContentValues();
        // Budaya table
        values.put("_id", "1");
        values.put("nama", "Suhunan Jolopong");
        values.put("kategori", "Rumah Adat");
        values.put("deskripsi", "Suhunan Jolopong, yaitu bentuk bangunan yang atapnya (suhunan) memanjang, sering disebut suhunan panjang atau gagajahan. Bentuk Jolopong sendiri memiliki dua bidang atap. ");
        values.put("img", R.drawable.imv_rumahadat_joloponggagajahan);
        db.insert("budaya", "_id", values);
        
        ContentValues values1 = new ContentValues();
        // Sejarah table
        values.put("_id", "1");
        values.put("materi", "Hello world");
        db.insert("sejarah", "_id", values1);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS budaya");
        onCreate(db);
        
        db.execSQL("DROP TABLE IF EXISTS sejarah");
        onCreate(db1);

    }

}

请帮忙,谢谢。

到目前为止,我对您的代码只有一个疑问。您可以使用下面的代码片段。

    ContentValues values1 = new ContentValues();
    // Sejarah table
    // values.put("_id", "1"); // <- Comment it
    values.put("materi", "Hello world");
    db.insert("sejarah", "_id", values1);

因为,values.put("_id", "1"); 这行可能是问题,因为你有 _id INTEGER PRIMARY KEY AUTOINCREMENT 所以你不必隐式设置值。

您将 values1 实例化为 ContentValues 对象以用于在 sejarah 中插入新行,但您使用 values 其中包含 [=19] 的值=] budaya.
此外,无需为自动递增列传递值:

ContentValues values1 = new ContentValues();
values1.put("materi", "Hello world");
db.insert("sejarah", null, values1);