在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();
答案 0 :(得分:1)
这是因为'是SQL中的特殊字符。
所以你最终得到的='caffe''
由于双倍''而无效。
您也希望使用whereArgs参数。
db.delete(NomeTable.TABLE_NAME, NomeTable.NOME_CAT + "= ?", new String[]{nome_cat});
这将为你逃脱你的角色,不应该把你弄乱你。
答案 1 :(得分:0)
我认为nome_cat
包含SQL语法不允许的一些符号。您可能希望使用SQLiteQueryBuilder来构建查询。