Ошибка базы данных Sqlite, повторяющееся имя столбца - PullRequest
0 голосов
/ 21 февраля 2019
Error Code : 1 (SQLITE_ERROR) Caused By : SQL(query) error or missing database.
    (duplicate column name: Floor (code 1)
while compiling: 
CREATE TABLE LocalizationInfo(_item INTEGER PRIMARY KEY, idINT,Floor TEXT, Floor HeightTEXT, Adress TEXT ,LatitudeTEXT, LongitudeTEXT, Altitude TEXT,Pressure TEXT) 

Я пытался сохранить свои данные, такие как этаж, высота этажа, данные GPS и адрес, которые были получены из другой операции, в другую, которая реализует данные SQLite для сохранения, загрузки, редактирования и удаления.Я всегда получаю это сообщение об ошибке, когда пытаюсь добавить данные из другого действия в базу данных, нажимая кнопку списка или публикации, которая направляет пользователя в базу данных.

Ответы [ 4 ]

0 голосов
/ 11 августа 2019

может не задавать значение для строк / столбцов таблицы Пример:

private static final String NEWS_PUBLISHER = "news_publisher";
  private static final String NEWS_CONTENT = "news_content";
  private static final String NEWS_DATE = "news_date";

может быть, вы задали одно имя для всего этого ...

0 голосов
/ 21 февраля 2019

Я думаю, что ваша проблема вызвана использованием пробела в качестве имени столбца Floor Height.Было бы хорошей идеей, чтобы вы использовали подчеркивание вместо пробелов для имен столбцов.Вы можете определить имена столбцов, такие как floor, floor_height, gps_data и address.

0 голосов
/ 21 февраля 2019

Ваша проблема в том, что

CREATE TABLE LocalizationInfo(
    _item INTEGER PRIMARY KEY, 
    idINT,
    Floor TEXT, 
    Floor HeightTEXT, 
    Adress TEXT ,
    LatitudeTEXT, 
    LongitudeTEXT, 
    Altitude TEXT,
    Pressure TEXT
)
  1. имеет пробел между этажом и высотой (отсюда дублирующееся имя столбца при попытке создать таблицу), а
  2. не имеетпробел между Высотой / Широтой и Долготой и ТЕКСТОМ, а также между id и INT.

Простое исправление 1 приведет к созданию столбцов (, что, вероятно, приведет к продолжающимся проблемам ):-

  • _item (как и ожидалось),
  • idINT (вам, вероятно, нужен идентификатор с типом INTEGER),
  • Этаж (как и ожидалось),
  • FloorHeightText (вам, вероятно, нужен FloorHeight с типом TEXT),
  • Адрес (как и ожидалось),
  • LatitudeTEXT (вы, вероятно, хотите Latitude с типом TEXT),
  • LongitudeText (вы, вероятно, хотитеДолгота с типом ТЕКСТ),
  • Высота (как и ожидалось),
  • Давление (как и ожидалось)

Попробуйте изменить на: -

CREATE TABLE LocalizationInfo(
    _item INTEGER PRIMARY KEY, 
    id INT,
    Floor TEXT, 
    FloorHeight TEXT, 
    Adress TEXT ,
    Latitude TEXT, 
    Longitude TEXT, 
    Altitude TEXT,
    Pressure TEXT
)

Вам нужно будет либо удалить / очистить данные приложения, либо удалить приложение, а затем перезапустить приложение, так как метод onCreate не будет запущенпотому что база данных существует.

0 голосов
/ 21 февраля 2019

старайтесь не ставить пробел между высотой этажа, если хотите, то можете сделать _ т.е.Floor_Height TEXT

...