データを sqlite データベース テーブルに挿入し、最初のレコードを挿入すると正常に挿入されますが、2 番目以降のすべてのレコードは挿入されません。これが私のデータベース ヘルパー クラスです。私はFirefoxのsqliteマネージャで同じクエリを試しましたが、うまくいきました。私のコードでそれらが機能しない理由がわかりません。
private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE + "( " + KEY_ROWID +
" INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_DESCRIPTION + " text, "+ KEY_WHY+" text , "+ KEY_ACCOUNTABILITY+
" text , "+KEY_ALARM_TYPE+" text , "+KEY_ALARM_VOLUME+" text, "+KEY_BG_IMAGE+" text, "+KEY_CATEGORY+" text, "+KEY_DATE_TIME+ " datetime "+" , "+KEY_STATUS+" text );";
public void addRecord(String description,String why, String accontability, String alarm_type,
String alarm_vol, String bg_image, String category, Date goalDateTime,String status) {
String query = "INSERT INTO " + DATABASE_TABLE + " VALUES(null,'"+ description + "', '" + why + "', '" + accontability +"','" + alarm_type +
"', '" + alarm_vol + "', '" + bg_image +"','" +category+ "','" + goalDateTime +"','"+status+"');";
Log.v("--->", query);
try{
mDB.execSQL(query);
} catch (Exception ex) {
Log.v("database error", ex.toString());
}
}
ここでテーブルにデータを追加しています
try {
/*
* dbHelper = new GoalDbAdapter(this); dbHelper.open();
* Log.v("database ","database opened"); // dbHelper. fillData();
*/
db = new GoalDbAdapter(this);
db.open();
String imagePath = pref.getValue("imagePath", "");
String goalCateg = pref.getValue("categText", "");
String vol = pref.getValue("vol", "");
String alarmType= pref.getValue("ringTonePath", "");
db.addRecord(goal_desc, goal_why, accountability, alarmType, vol, imagePath, goalCateg, goalDate,"");
cursor = db.getTop3Goals();
Log.v("cursor count in add act",".."+cursor.getCount());
cursor.close();
db.close();
} catch (Exception ex) {
Log.v("database error", ex.toString());
}
ゴールを取得するためのコードは次のとおりです。すべてのデータを取得することはできません。最初のゴールのみを返し、他のゴールは返しません。これらのメソッドはすべて、最初のゴールのみを返しています。
public Cursor getGoals() {
Cursor c_all = mDB.rawQuery("SELECT * FROM " + DATABASE_TABLE, null);
int count= c_all.getCount();
Log.v("cursor count in db all goals", c_all.getCount()+"..");
c_all.moveToFirst();
return c_all;
}
//SELECT * FROM table ORDER BY date DESC LIMIT 5
public Cursor getTop3Goals() {
Cursor c = mDB.rawQuery("SELECT * FROM " + DATABASE_TABLE + " ORDER BY "+ KEY_DATE_TIME + " DESC LIMIT 3", null);
c.moveToFirst();
return c;
}
public Cursor getGoalsByDate() {
Cursor c = mDB.rawQuery("SELECT * FROM " + DATABASE_TABLE + " ORDER BY "+ KEY_DATE_TIME + " DESC ", null);
c.moveToFirst();
return c;
}