Как я могу создать третий столбец для целочисленных значений? - PullRequest
0 голосов
/ 26 января 2019

Я хочу создать базу данных SQL, используя SQL Lite в Java.

String createTable = "CREATE TABLE " + TABLE_NAME
            + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, "
            + COL2 +" TEXT, "
            + COL3 +" INTEGER"
            + ")";

У меня есть метод getTime:

public Cursor getTime(String name){
    SQLiteDatabase db = this.getWritableDatabase();
    String query = "SELECT " + COL3 + " FROM " + TABLE_NAME +
            " WHERE " + COL2 + " = '" + name + "'";
    Cursor data = db.rawQuery(query, null);
    return data;
}

И метод для обновления времени:

public void updateTime(int id, String name, int time) {
    SQLiteDatabase db = this.getWritableDatabase();
    String query = "UPDATE " + TABLE_NAME + " SET " + COL3 +
            " = '" + time + "' WHERE " + COL1 + " = '" + id + "'" +
            " AND " + COL2 + " = '" + name + "'";
    Log.d(TAG, "updateName: query: " + query);
    Log.d(TAG, "updateName: Setting time to " + time);
    db.execSQL(query);
}

Я использую getTime () следующим образом:

Cursor test = mDatabaseHelper.getTime(selectedName);
    int timeTest = test.getInt(0); <-- Error here!
    System.out.print(timeTest);

По какой-то причине что-то не работает так, как я хочу.Спасибо за вашу помощь: D

1 Ответ

0 голосов
/ 26 января 2019

Вы должны проверить, извлекла ли Cursor какие-либо строки с помощью moveToFirst():

Cursor test = mDatabaseHelper.getTime(selectedName);
int timeTest = 0;
if (test.moveToFirst()) {
    timeTest = test.getInt(0); 
    System.out.print(timeTest);
} else {
    System.out.print("No rows matching");
}

Редактировать Название вашего вопроса не имеет отношения ко всему, что вы упомянули позже, но есть ли случай, когда вы уже создали таблицуа теперь вы хотите добавить столбец COL3?Если это так, удалите приложение, чтобы база данных была удалена, и снова запустите ее, чтобы она была заново создана с новым столбцом.Код в операторе CREATE TABLE... не создает таблицу, если она уже существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...