Я пытаюсь собрать базу данных SQL, но на самом деле не знаю, как заставить ее работать.Намерение состоит в том, чтобы иметь несколько столбцов, некоторые с целыми числами, некоторые со строками в своих ячейках.Для этого приложения я хочу, чтобы повторения были целым числом, а упражнение - строкой.Вот соответствующие части кода:
public static final String KEY_ROWID = "_id";
public static final String KEY_DATE = "date";
public static final String KEY_EXERCISE = "exercise";
public static final String KEY_REPS = "repetitions";
private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE + " ("
+ KEY_ROWID + " integer primary key autoincrement, "
+ KEY_DATE + " text not null, "
+ KEY_EXERCISE + " text not null, "
+ KEY_REPS + " int not null, "
public long createExercise(String exercise, int reps) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_DATE, date);
initialValues.put(KEY_EXERCISE, exercise);
initialValues.put(KEY_REPS, reps);
return mDb.insert(DATABASE_TABLE, null, initialValues);
}
Я помещаю данные в эту таблицу, используя тестовые строки.Затем я пытаюсь получить данные с помощью следующего запроса:
public Cursor graphQuery(String exercise, String workout) {
return mDb.query(DATABASE_TABLE, new String[] {KEY_DATE, KEY_REPS}, null, null,
null, null, null);
Оттуда я пытаюсь поместить данные в массив чисел, но это дает мне ошибку.Он говорит мне поставить KEY_REPS как число, когда я объявил это.Но если я объявляю KEY_REPS как число, это не позволяет мне строить свои базы данных.
Cursor cursor = mDbHelper.graphQuery(currentexercise, currentworkout);
startManagingCursor(cursor);
Number[] reps = new Number[]{workoutDbAdapter.KEY_REPS}; //error here
Я чувствую, что мне не хватает ключевой части в создании моей базы данных.Может ли кто-нибудь помочь?
Код из книги, которой я пытаюсь следовать (кроме использования целых чисел) (из комментария к первому ответу)
private void fillData() {
Cursor remindersCursor = mDbHelper.fetchAllReminders();
startManagingCursor(remindersCursor);
// Create an array to specify the fields we want (only the TITLE)
String[] from = new String[]{RemindersDbAdapter.KEY_TITLE};
При этом, если кто-то знает хороший сайтэто учит SQLite, как это применимо к Android, что было бы здорово.Единственные, что мне удалось найти, - это общие SQL-сайты, и они не очень полезны.