在表SQLite中。我有一个列表,按删除按钮删除了每条记录。

但是,例如,如果在书面记录中使用“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();

最佳答案

这是因为'是SQL中的特殊字符。

因此,您最终得到='caffe'',该字符由于双''无效。

您还想使用whereArgs参数。
db.delete(NomeTable.TABLE_NAME, NomeTable.NOME_CAT + "= ?", new String[]{nome_cat});
这将为您逃脱'字符,并且不会弄乱SQL。

10-06 10:47