我正在使用数据库来存储日期,并希望根据 where 子句中给出的 id 返回单个列。
public String getPmax(String serial) {
String[] columns = new String[]{KEY_SERIAL, KEY_PMAX};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, "serial = " + serial,
null, null, null, null);
String result = "nothing found";
if(c != null) {
int iPmax = c.getColumnIndex(KEY_PMAX);
c.moveToFirst();
result = c.getString(iPmax);
}
return result;
}
如果我使用数据库中的序列号,则此代码有效,但当我使用不在数据库中的序列号时,它会给我一个强制关闭!
它说:
04-11 16:31:19.423: E/AndroidRuntime(21226): java.lang.RuntimeException: Unable to start activity ComponentInfo{nl.janjanus.solardetect/nl.janjanus.solardetect.DatabaseView}: android.database.sqlite.SQLiteException: no such column: g: , while compiling: SELECT serial, pmax FROM SolareCel WHERE serial = g
所以我的问题是:我如何检查是否有结果?还是我需要检查给定的序列号是否是数据库中的序列号?