【发布时间】:2011-06-13 22:47:41
【问题描述】:
我有以下数据库助手类:
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;
}
我在我的应用程序中使用它来查看之前是否输入了学生 ID。
当学生 ID 为整数 (346742) 时,这可以正常工作,但每当我尝试添加字母数字 ID (PB3874) 时,它都会强制关闭应用程序。
错误:
06-13 18:22:20.554: ERROR/AndroidRuntime(8088): android.database.sqlite.SQLiteException: no such column: pb3874: ,编译时: select count(*) from usertable where 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 值都非常有效。有人有任何解决问题的建议吗?
【问题讨论】: