Android sqllite。如果字符串包含在表中无法删除的行“+”字符

问题描述:

我想在表中删除行:Android sqllite。如果字符串包含在表中无法删除的行“+”字符

DBHelper dbHelper = new DBHelper(ctx); 
SQLiteDatabase db = dbHelper.getWritableDatabase(); 
String _number="+79261604030"; 
db.delete("calls", "number = " + _number, null);` 

如果我用的只是数字,一切工作正常,但如果字符串有+标志,该行不会被删除。我认为这是特殊字符的问题,但不知道如何更改字符串。

谢谢。

+0

你得到的错误是什么? – Rohit5k2

+0

没有错误,它只是不删除行。如果刺有19个以上的字符也不删除行。 – kotzulla

切勿使用字符串连接来创建查询。使用占位符:

String[] args={"+79261604030"}; 
db.delete("calls", "number = ?", args); 

除了更安全之外,它还处理所有您不处理的内容,例如引用字符串。

+0

我接受了你的建议并且很有效,非常感谢! – kotzulla