在表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。