2016-03-07 2 views
0

Я новичок в Android. Я пытаюсь обновить информацию в базе данных sqlite. В большинстве случаев я могу обновлять информацию, но иногда мой телефон выходит с ошибкой обновления. Я отлаживал много раз, он не показывает ничего плохого в моем коде. Я использую Android 5.1.1 Lollipop в качестве инструмента тестирования. В большинстве случаев обновление sqlite работает нормально, но иногда приложение будет аварийно завершено.Android: обновить базу данных SQLite

Ниже приведен код обновления кода. Скажите, пожалуйста, что случилось с моим кодом.

public void updateArticle(String NewName, String oldName) { 
    SQLiteDatabase db = getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    values.put(COLUMN_ARTICLENAME, NewName); 
    db.update(TABLE_ARTICLE, values, COLUMN_ARTICLENAME + " = '" + oldName + "'", null); 
    db.close(); 
} 

спасибо.

+0

* «но иногда мой телефон выйдет с ошибкой обновления» * Какая ошибка именно? – m0skit0

+0

Какая ошибка в вашей студии? – Trinity

+0

На самом деле это не ошибка, она просто не может обновлять последнюю информацию. Например, если Old Name является учебным пособием по Java и обновляет новое имя для Java-программирования, я отлаживаю и вижу, что это не обновление для sqlite. Но иногда я обновляюсь, это обновление успешно. Я чувствую что-то странное. –

ответ

0

необходимо обновить версию БД тоже!

@Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     try 
     { 
      db.execSQL(DROP_TABLE); 
      onCreate(db); 
      Message.message(context, "onUpgrade called"); 
     } catch (SQLException e) 
     { 
      Message.message(context, "" + e);   } 
    } 

с DATABASE_VERSION = 1

+0

Да, у меня есть функция onUpgrade для обновления версии db. –

-1

Может быть более одного учебника по Java, поэтому, когда курсор начал искать строки, он обновляет другую строку, которая не является вашей ожидаемой строкой. Представьте, что на нем есть список и ваши строки. Возьмите элемент с идентификатором и обновите его, это более хорошая практика кодирования. Вы можете посмотреть следующие ссылки, я надеюсь, что это поможет вашей проблеме.

http://androidopentutorials.com/android-sqlite-example/ http://www.mysamplecode.com/2012/07/android-listview-cursoradapter-sqlite.html

+0

Благодарим вас за ответ –

+0

К сожалению, мы взяли мины репутации :) – Trinity