我正在使用數據庫來存儲日期,並希望根據where claus中給出的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
所以我的問題是:如何檢查是否有結果?或者我需要檢查給出的序列是否是數據庫中的序列?
遊標沒有行,它是空的,但上面的測試仍然失敗,爲什麼?還有其他支票嗎?這真是莫名其妙。 – Namratha 2013-03-19 05:56:40
注意:這具有將光標設置到第一個位置的副作用。如果將已移動到特定位置的遊標對象傳遞給另一個函數,然後期望仍處於該位置,則會導致問題:) – 2015-06-01 20:40:56