Полагаю, вы определили эти переменные:
String COLUMN_ID = "id";
String COLUMN_USERNAME = "username";
....................................
или что-то в этом роде.
Если в именах столбцов есть пробелы, вы должны использовать квадратные скобки или галочки вокруг них, например:
String COLUMN_USERNAME = "[user name]";
В своем выражении CREATE TABLE
вы определяете имена столбцов как:
"COLUMN_ID", "COLUMN_USERNAME", ....
потому что вы используете имена переменных, а не их значения.
Но в методе addPatient()
вы помещаете значения в объект ContentValues
, используя их действительные имена.
Чтобы решить вашу проблему, сначала удалите приложение с тестируемого устройства, чтобы удалить базу данных.
Затем измените оператор CREATE TABLE
следующим образом:
String query = "CREATE TABLE " + TABLE_PATIENT +" (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_USERNAME + " TEXT, " +
COLUMN_PASSWORD + " TEXT, " +
COLUMN_FIRSTNAME + " TEXT, " +
COLUMN_LASTNAME + " TEXT, " +
COLUMN_AGE + " TEXT, " +
COLUMN_GENDER + " TEXT, " +
COLUMN_PHONE + " TEXT, " +
COLUMN_ADDRESS + " TEXT)";
и перезапустите базу данных с правильными именами столбцов.