У меня есть следующий класс помощника БД:
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;
}
Я использую это в своем приложении, чтобы увидеть, был ли ранее введен идентификатор студента.
Это прекрасно работает, когда идентификаторы ученика являются целыми (346742), но всякий раз, когда я пытаюсь добавить буквенно-цифровой идентификатор (PB3874), оно принудительно закрывает приложение.
Ошибка:
06-13 18: 22: 20.554: ОШИБКА / AndroidRuntime (8088): android.database.sqlite.SQLiteException: нет такого столбца: pb3874:, при компиляции: выберите количество (*) из пользовательской таблицы, где 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. У кого-нибудь есть совет по решению проблемы?