У меня есть следующий вспомогательный класс DB:
public int studentExists(String studid) {
Cursor dataCount = mDb.rawQuery("select count(*) from usertable where " + KEY_STUDID + "=" + studid, null);
dataCount.moveToFirst();
int count = dataCount.getInt(0);
dataCount.close();
return count;
}
Я использую это в своем приложении, чтобы узнать, был ли ранее введен идентификатор студента.
Это отлично работает, когда идентификатор студента - int (346742), но всякий раз, когда я пытаюсь добавить буквенно-цифровой идентификатор (PB3874), он закрывает приложение.
Ошибка:
06-13 18: 22: 20.554: ERROR/AndroidRuntime (8088): android.database.sqlite.SQLiteException: нет такого столбца: pb3874: при компиляции: выберите count (*) из usertable где studid = pb3874
Я не думаю, что это проблема с типом данных (потому что я использую тип текста):
private static final String DATABASE_CREATE =
"create table usertable (_id integer primary key autoincrement, "
+ "studid text not null);";
Но я смущен, почему ошибка говорит no such column: pb3874
, поскольку я пытаюсь просто выбрать это значение из столбца studid. А также почему это отлично работает для любой ценности int. У кого-нибудь есть рекомендации по решению проблем?