我是Android开发的新手,所以代码还没有完成......
当我在contentValues
方法中使用onCreate()
创建我的数据库并插入一些项目但在应用程序运行后,我尝试读取我的数据库但它是空的。
这是第一次启动我的应用程序,因此它将使用onCreate()
方法,但遗憾的是不插入。
这是我的代码......
package com.example.axel.spotopia;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.security.PublicKey;
public class SpotopiaDBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "spotopia";
private static final int DB_VESION = 1;
public SpotopiaDBHelper(Context context) {
super(context, DB_NAME, null, DB_VESION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
updateMyDB(db, 0, DB_VESION);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
updateMyDB(db, oldVersion, newVersion);
}
private void insertSpot(SQLiteDatabase db, String name, String address, String note, String rank) {
ContentValues content = new ContentValues();
content.put("NAME", name);
content.put("ADDRESS", address);
content.put("NOTE", note);
content.put("RANK", rank);
db.insert(DB_NAME, null, content);
}
private void updateMyDB(SQLiteDatabase db, int oldVersion, int newVersion)
{
if (oldVersion < 1) {
db.execSQL("CREATE TABLE SPOT ("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "NAME TEXT, "
+ "ADDRESS TEXT, "
+ "NOTE TEXT, "
+ "RANK REAL);");
insertSpot(db, "jaz", null, null, "8");
insertSpot(db, "jaz1", null, null, "9");
insertSpot(db, "jaz2", null, null, "10");
}
}
}
答案 0 :(得分:1)
下面:
db.insert(DB_NAME, null, content);
第一个参数应该是表名...而不是数据库名。那么,请你用下面的代码测试一下吗?
private void insertSpot(SQLiteDatabase db, String name, String address, String note, String rank) {
ContentValues content = new ContentValues();
content.put("NAME", name);
content.put("ADDRESS", address);
content.put("NOTE", note);
content.put("RANK", rank);
db.insert("SPOT", null, content);
}