2013-10-08 3 views
0

в таблице SQLite. У меня есть список строк, которые я вижу, находится в списке по кнопке «Я удаляю каждую запись».Android сбой при удалении записи

Но если, например, в письменной записи и в слове «caffè» все работает нормально, но если на нем написано слово «caffe», приложение падает, почему? благодаря

String nome = tv.getText().toString(); 
      SQLiteDatabase db = mHelper.getWritableDatabase(); 
      db.delete(NomeTable.TABLE_NAME, NomeTable.NOME_CAT + "='" + nome_cat + "'", null); 
      db.close(); 
      finish(); 
+1

Опубликовать свою ошибку logcat –

+0

вы можете попробовать '' db.delete (NomeTable.TABLE_NAME, NomeTable.NOME_CAT + "=?", New String [] {nome_cat}); ''? Также .. вы уверены, что nome_cat содержит что-нибудь? это довольно сложно помочь вам без логарифма :) – iBecar

ответ

1

Это потому, что это специальный символ в SQL.

Таким образом, вы получаете ='caffe'', что является недопустимым из-за двойного ''.

Вы хотите вместо этого использовать параметр whereArgs.

db.delete(NomeTable.TABLE_NAME, NomeTable.NOME_CAT + "= ?", new String[]{nome_cat});

Это избежит свой "характер для вас и не должны испортить вам SQL.

+0

большое спасибо. поэтому он работает очень хорошо – user2856560

0

Я думаю nome_cat содержит некоторые символы, не допускаемые синтаксисом SQL. Вы можете использовать SQLiteQueryBuilder для создания запроса.

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