2012-06-09 3 views
0

, когда я пытаюсь обновить таблицу приложение сбой и вернуть эту фатальную ошибку:ошибка в таблице обновления

06-09 08:02:34.026: I/Database(342): sqlite returned: error code = 1, msg = no such column: username 
06-09 08:02:34.034: E/Database(342): Error updating valore=1234 using UPDATE parametri SET valore=? WHERE _parametro=username 
06-09 08:02:34.034: D/AndroidRuntime(342): Shutting down VM 
06-09 08:02:34.034: W/dalvikvm(342): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
06-09 08:02:34.054: E/AndroidRuntime(342): FATAL EXCEPTION: main 
06-09 08:02:34.054: E/AndroidRuntime(342): android.database.sqlite.SQLiteException: no such column: username: , while compiling: UPDATE parametri SET valore=? WHERE _parametro=username 

Функция вставки/обновления заключается в следующем:

String strFilter = ParametriMetaData.PARAMETRO+"=" + parametro; 
    ContentValues args = new ContentValues(); 
    args.put(ParametriMetaData.VALORE, valore); 

    System.out.println(strFilter); 

    mDb.update(ParametriMetaData.TAB_PARAMETRI, args, strFilter, null); 

Это определение таблицы:

private static final String CREA_TAB_PARAMETRI = "CREATE TABLE IF NOT EXISTS " //codice sql di creazione della tabella 
        + ParametriMetaData.TAB_PARAMETRI + " (" 
        + ParametriMetaData.PARAMETRO+ " text primary key, " 
        + ParametriMetaData.VALORE + " text not null);"; 

Что такое? Спасибо!

+1

Таблица структура правильно пожалуйста. Не могу сказать, что такое ParametriMetaData.TAB_PARAMETRI и т. Д. – Thihara

ответ

0

Update запрос должен иметь правильное положение, где update(tablename, value, referenceField+"=?", value);

String strFilter = ParametriMetaData.PARAMETRO+"=?"; 
    ContentValues args = new ContentValues(); 
    args.put(ParametriMetaData.VALORE, valore); 

    System.out.println(strFilter); 

    mDb.update(ParametriMetaData.TAB_PARAMETRI, args, strFilter, parametro); 
+0

Ошибка msg говорит, что столбец «имя пользователя» не существует. Вы уверены, что запрос неверен? – cstrutton

0

я пошел бы в sqlite3 (через ADB оболочки) и убедитесь, что таблица в вопросе есть столбец с именем «имя пользователя». Вы можете видеть оператор SQL CREATE с помощью schema ?TABLE?. Я думаю, что вы столкнулись с проблемой структуры таблицы.

Вы получаете команду sqlite3, выполнив adb shell в терминале (unix) или в командной строке (windows), а затем sqlite3. The documentation for sqlite3 can be found here.

Смежные вопросы