如何在 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);
你好,我是 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);