db.insert добавить значения случайно? - PullRequest
0 голосов
/ 22 марта 2012

Вопрос прост и состоит в одной строке: «Функция insert () в SQLiteDatabase для Android пытается добавить значения случайным образом».

Значение:

// Database creation sql statement
private static final String DATABASE_CREATE = "create table "
        + TABLE_NAME 
        +"( "
        + COLUMN_ID + " integer primary key autoincrement, "
        + COLUMN_LATITUDE + "integer,"
        + COLUMN_LONGTITUDE + "integer,"
        + COLUMN_TITLE + "text,"
        + COLUMN_TEXT + " text not null"
        + ");";

А когда я ставлю значения и пытаюсь вставить их:

values.put(COLUMN_ID, marker.getId() );
values.put(COLUMN_LATITUDE, marker.getLatitude()  ); // lat
values.put(COLUMN_LONGTITUDE, marker.getLongtitude() ); // long     
values.put(COLUMN_TITLE, marker.getTitle()  ); // Title     
values.put(COLUMN_TEXT, marker.getText() ); // Text     

// Inserting Row
        db.insert(TABLE_NAME, null, values);

но ошибка, которую я получил: E / Database (2542): android.database.sqlite.SQLiteException: таблица У элементов нет столбца с именем longitude: , при компиляции: INSERT INTO items (longitude, text, title, latitude, _id) VALUES (? ,?,?,?,?);

так что, я думаю, он пытается указать долготу, где находится Id, и это вызывает ошибку.

Правильно ли мое предположение? Что мне нужно изменить?

1 Ответ

1 голос
/ 22 марта 2012

В вашем операторе create Table есть ошибка, вам не хватает пробелов перед типами (целое число, текст), вот правильная версия:

private static final String DATABASE_CREATE = "create table "
    + TABLE_NAME 
    +"( "
    + COLUMN_ID + " integer primary key autoincrement, "
    + COLUMN_LATITUDE + " integer,"
    + COLUMN_LONGTITUDE + " integer,"
    + COLUMN_TITLE + " text,"
    + COLUMN_TEXT + " text not null"
    + ");";

Прежде чем вы не создали столбецназывается "долгота".Вместо "longitudeinteger" был создан

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