Android 如何在select count中插入变量

Android 如何在select count中插入变量,android,select,Android,Select,我想用变量替换字母M。由共享首选项创建和管理后,我输入代码的相关部分,将'M'替换为“+turno_1+”,但即使识别出变量(我可以从日志中看到),我也会创建一个致命错误 Cursor mcursor = dataBase.rawQuery("SELECT COUNT(turno) AS mutua FROM "+DbHelper.TURNI+" WHERE MESE = 'Gennaio'and TURNO = 'M' ", null); 如果我把 Cursor mcursor = data

我想用变量替换字母
M
。由共享首选项创建和管理后,我输入代码的相关部分,将
'M'
替换为
“+turno_1+”
,但即使识别出变量(我可以从日志中看到),我也会创建一个致命错误

Cursor mcursor = dataBase.rawQuery("SELECT COUNT(turno) AS mutua FROM "+DbHelper.TURNI+" WHERE MESE = 'Gennaio'and TURNO = 'M' ", null);
如果我把

Cursor mcursor = dataBase.rawQuery("SELECT COUNT(turno) AS mutua FROM "+DbHelper.TURNI+" WHERE MESE = 'Gennaio'and TURNO = "+turno_1+"", null);

turno_1
中没有嵌入引号字符。添加引号字符,或使用参数
“WHERE MESE='Gennaio'and TURNO=?”
,然后在下一个参数的
String
args数组中提供
TURNO\u 1
(现在有
null
):
新字符串[]{TURNO\u 1}

完整示例:

Cursor mcursor = dataBase.rawQuery("SELECT COUNT(turno) AS mutua FROM "+DbHelper.TURNI+" WHERE MESE = 'Gennaio' and TURNO = ?", new String[]{ turno_1 });

感谢您回复我,但它仍然不起作用,致命异常:main java.lang.RuntimeException:无法恢复活动{turni.db.tab/com.turniDB.turniDB}:java.lang.RuntimeException:无法恢复活动{turni.db.tab/mesi.Gennaio}:java.lang.NumberFormatException:无效int:“Mutua”在我的代码中,我尝试在共享首选项中输入一个数值,例如8,而不是Mutual,所以它都可以工作,为什么要接受数值​​而不是信件