Ваш вопрос (ы)
Я считаю, что таблица создается.Однако не с ожидаемыми именами столбцов.
Это связано с тем, что допускаются пробелы, оператор create разрешается в: -
CREATE TABLE user (emailTEXT PRIMARYKEY, passwordTEXT);
В связи с этим в таблице будут столбцы emailTEXT, а не email иpasswordText, а не password.
Это вызовет проблемы, когда попытка использовать столбцы email и пароль, так как эти столбцы не существуют.
Дополнительный PRIMARYKEY недопустим в качестве ключевого слова, поэтому измените оператор create на
CREATE TABLE user (email TEXT PRIMARYKEY, password TEXT);
Создаст таблицу с правильными столбцами, НО столбец электронной почты не будет отклонять повторяющиеся значения.
Таким образом, вам нужно добавить пробел между PRIMARY и KEY, поэтому создание должно быть: -
CREATE TABLE user (email TEXT PRIMARY KEY, password TEXT);
Предлагаемое исправление
Ваш код может быть изменен на: -
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + "(" +
COL1 + " TEXT PRIMARY KEY," +
COL2 + " TEXT)");
}
Обратите внимание, что onCreate не будет вызываться, еслибаза данных удалена или вызвана принудительно, поэтому вы можете выполнить одно из следующих действий: -
- Удалить данные приложения (удалить базу данных).
- деинсталлируйте приложение (удаляет базу данных).
- Увеличьте версию базы данных (4-й параметр вызова супер, например, используйте
super(context, DATABASE_NAME, null, 2);
( 1 , изменено на 2 * 1038)*)) (вызывает метод onUpgrade , и поэтому таблица удаляется, а затем вызывается onCreate .).