2014-12-21 1 views
0

Я пытаюсь трудно удалить строку в моей таблице:Удалить элемент в SQLite базы данных без поля ид

String createQuery3 = "CREATE TABLE foto" + 
       "(_id integer primary key autoincrement," + 
        "_id_visita integer, nome_immagine TEXT, nome_immagine_resampled TEXT, " + 
        "commento_foto TEXT," + "commento_foto_resampled TEXT," + 
       "FOREIGN KEY(_id_visita) REFERENCES visite (_id));"; 

по линии:

public void cancellaFoto(Long idPaziente, String nomeFoto) { 
     // TODO Auto-generated method stub 

      databaseConnector.open(); // open the database 
      database = databaseConnector.getOpenDatabase(); 

      Log.d(TAG, "FOTO SINGOLA DA CANCELLARE ID_Paziente: " + idPaziente); 
      Log.d(TAG, "FOTO SINGOLA DA CANCELLARE nomeFoto: " + nomeFoto); 

      database.delete("foto", "nome_immagine=" + nomeFoto , null) ; 


      Log.d(TAG, "FOTO SINGOLA DA CANCELLATA" + nomeFoto); 
      databaseConnector.close(); // close the database 

    } 

, но ничего. risult является:

12-21 09:55:41.961: E/AndroidRuntime(11373): at java.lang.Thread.run(Thread.java:841) 
12-21 09:55:41.961: E/AndroidRuntime(11373): Caused by: android.database.sqlite.SQLiteException: unrecognized token: "1419152123776.png" (code 1): , while compiling: DELETE FROM foto WHERE nome_immagine=1419152123776.png; 
12-21 09:55:41.961: E/AndroidRuntime(11373): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 

но название фото правильно:

12-21 09:55:41.941: D/FotoDatabaseInterface(11373): FOTO SINGOLA DA CANCELLARE ID_Paziente: 2 
12-21 09:55:41.941: D/FotoDatabaseInterface(11373): FOTO SINGOLA DA CANCELLARE nomeFoto: 1419152123776.png 

Любая идея? Спасибо

ответ

3

В SQL строковые литералы, такие как '1419152123776.png', должны быть указаны с одинарными кавычками.

Это лучше использовать ? заполнители и переменные связывания, хотя:

database.delete("foto", "nome_immagine=?", new String[] { nomeFoto }) ; 
+0

Это работает! Я подумал об этом, но с переменным именем, как добавить одиночную кавычку? Ваше решение очень простое. Большой! –

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