0
にsqliteのテーブルを作成することができません。だから私は、私は、私のデータを格納し、それを引き出し、それを操作し、後ろにそれを突き出すことができるようにアンドロイドにSQLiteのテーブルのセットを作成しようとしてるアンドロイド
エラー私は実行中です:
android.database.sqlite.SQLiteException: no such table: units (code 1): , while compiling: SELECT * FROM units
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1257)
at au.edu.murdoch.ict376.universityquest.helpers.DBHelper.getAllUnits(DBHelper.java:787)
at au.edu.murdoch.ict376.universityquest.fragments.SettingsFragment.onCreateView(SettingsFragment.java:54)
at android.app.Fragment.performCreateView(Fragment.java:2353)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:995)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171)
at android.app.BackStackRecord.run(BackStackRecord.java:816)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:483)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
そして私はそれを修正しようとしました。私はどこに間違っているのか分からない。
ここに私のDBHelperのonCreateコードです:
public class DBHelper extends SQLiteOpenHelper {
// Array divider
private static final String ARRAY_DIVIDER = "vyo6vj50fdbv";
// The database name
private static final String DATABASE_NAME = "UniQuest.db";
// The table "notes"
private static final String NOTES_TABLE_NAME = "notes";
private static final String NOTES_COLUMN_ID = "id";
private static final String NOTES_COLUMN_TITLE = "title";
private static final String NOTES_COLUMN_DATE = "date";
private static final String NOTES_COLUMN_TEXT = "text";
// The table "tasks"
private static final String TASKS_TABLE_NAME = "tasks";
private static final String TASKS_COLUMN_ID = "id";
private static final String TASKS_COLUMN_TITLE = "title";
private static final String TASKS_COLUMN_DATE = "date";
private static final String TASKS_COLUMN_TEXT = "text";
private static final String TASKS_COLUMN_COMPLETED = "completed";
// The table "assignments"
private static final String ASSIGNMENTS_TABLE_NAME = "assignments";
private static final String ASSIGNMENTS_COLUMN_ID = "id";
private static final String ASSIGNMENTS_COLUMN_TITLE = "title";
private static final String ASSIGNMENTS_COLUMN_DUEDATE = "duedate";
private static final String ASSIGNMENTS_COLUMN_TASKS = "tasks";
private static final String ASSIGNMENTS_COLUMN_COMPLETED = "completed";
// The table "achievements"
private static final String ACHIEVEMENTS_TABLE_NAME = "notes";
private static final String ACHIEVEMENTS_COLUMN_ID = "id";
private static final String ACHIEVEMENTS_COLUMN_TITLE = "title";
private static final String ACHIEVEMENTS_COLUMN_CRITERIA = "criteria";
private static final String ACHIEVEMENTS_COLUMN_COMPLETED = "completed";
// The table "classes"
private static final String TUTES_TABLE_NAME = "classes";
private static final String TUTES_COLUMN_ID = "id";
private static final String TUTES_COLUMN_TITLE = "title";
private static final String TUTES_COLUMN_DAY = "day";
private static final String TUTES_COLUMN_TIME = "time";
private static final String TUTES_COLUMN_TYPE = "type";
private static final String TUTES_COLUMN_LOCATION = "location";
// The table "grades"
private static final String GRADES_TABLE_NAME = "grades";
private static final String GRADES_COLUMN_ID = "id";
private static final String GRADES_COLUMN_UNIT = "unit";
private static final String GRADES_COLUMN_GRADE = "grade";
// The table "units"
private static final String UNITS_TABLE_NAME = "units";
private static final String UNITS_COLUMN_ID = "id";
private static final String UNITS_COLUMN_UNIT = "unit";
private static final String UNITS_COLUMN_MARKID = "markid";
// The table "marks"
private static final String MARKS_TABLE_NAME = "marks";
private static final String MARKS_COLUMN_ID = "id";
private static final String MARKS_COLUMN_TASK = "task";
private static final String MARKS_COLUMN_TYPE = "type";
private static final String MARKS_COLUMN_WEIGHT = "weight";
private static final String MARKS_COLUMN_GRADE = "grade";
private static final String MARKS_COLUMN_UNITID = "unitid";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
// Creating the tables
db.execSQL(
"create table " + NOTES_TABLE_NAME + "(" +
NOTES_COLUMN_ID + " integer primary key autoincrement, " +
NOTES_COLUMN_TITLE + " text, " +
NOTES_COLUMN_DATE + " text, " +
NOTES_COLUMN_TEXT + " text);" +
"create table " + TASKS_TABLE_NAME + "(" +
TASKS_COLUMN_ID + " integer primary key autoincrement, " +
TASKS_COLUMN_TITLE + " text, " +
TASKS_COLUMN_DATE + " text, " +
TASKS_COLUMN_TEXT + " text, " +
TASKS_COLUMN_COMPLETED + " text);" +
"create table " + ASSIGNMENTS_TABLE_NAME + "(" +
ASSIGNMENTS_COLUMN_ID + " integer primary key autoincrement, " +
ASSIGNMENTS_COLUMN_TITLE + " text, " +
ASSIGNMENTS_COLUMN_DUEDATE + " text, " +
ASSIGNMENTS_COLUMN_TASKS + " text, " +
ASSIGNMENTS_COLUMN_COMPLETED + " text);" +
"create table " + ACHIEVEMENTS_TABLE_NAME + "(" +
ACHIEVEMENTS_COLUMN_ID + " integer primary key autoincrement, " +
ACHIEVEMENTS_COLUMN_TITLE + " text, " +
ACHIEVEMENTS_COLUMN_CRITERIA + " text, " +
ACHIEVEMENTS_COLUMN_COMPLETED + " text);" +
"create table " + TUTES_TABLE_NAME + "(" +
TUTES_COLUMN_ID + " integer primary key autoincrement, " +
TUTES_COLUMN_TITLE + " text, " +
TUTES_COLUMN_DAY + " text, " +
TUTES_COLUMN_TIME + " text, " +
TUTES_COLUMN_TYPE + " text, " +
TUTES_COLUMN_LOCATION + " text);" +
"create table " + GRADES_TABLE_NAME + "(" +
GRADES_COLUMN_ID + " integer primary key autoincrement, " +
GRADES_COLUMN_UNIT + " text, " +
GRADES_COLUMN_GRADE + " text);" +
"create table " + UNITS_TABLE_NAME + "(" +
UNITS_COLUMN_ID + " integer primary key autoincrement, " +
UNITS_COLUMN_UNIT + " text, " +
UNITS_COLUMN_MARKID + " text);" +
"create table " + MARKS_TABLE_NAME + "(" +
MARKS_COLUMN_ID + " integer primary key autoincrement, " +
MARKS_COLUMN_TASK + " text, " +
MARKS_COLUMN_TYPE + " text, " +
MARKS_COLUMN_WEIGHT + " text, " +
MARKS_COLUMN_GRADE + " text, " +
MARKS_COLUMN_UNITID + " text);"
);
}
そして、これは私が私のフラグメントに呼び出そうとしてる方法です:
public List<Unit> getAllUnits() {
List<Unit> units = new LinkedList<Unit>();
String query = "SELECT * FROM " + UNITS_TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
Unit unit = null;
if (cursor.moveToFirst()) {
do {
unit = new Unit();
unit.setId(Integer.parseInt(cursor.getString(0)));
unit.setUnit(cursor.getString(1));
unit.setMarks(Integer.parseInt(cursor.getString(2)));
units.add(unit);
} while (cursor.moveToNext());
}
return units;
}
は、「テーブルが上がらない理由を私は理解できません作成すると、私は1時間それを注いできました。