删除没有id字段的sqlite数据库中的项目

时间:2014-12-21 09:03:37

标签: android 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

    }

但没有。祸害是:

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

任何想法?感谢

1 个答案:

答案 0 :(得分:3)

在SQL中,必须使用单引号引用字符串文字,例如'1419152123776.png'

最好使用?占位符和变量绑定:

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