我有這是由下面的代碼創建一個SQL表空:如何測試如果光標在一個SQLiteDatabase查詢
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + SUBJECT
+ " TEXT NOT NULL," + TOPIC + " TEXT NOT NULL, "
+ LECTURENUMBER + " TEXT NOT NULL, " + PAGENUMBER
+ " TEXT NOT NULL, " + DATE + " TEXT NOT NULL, " + _DATA
+ " TEXT NOT NULL);");
}
我查詢表如下:
String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
+ " GROUP BY " + SUBJECT + ";";
Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);
問題是否必須在光標爲空(即表格不存儲值)時啓動活動A,如果光標不爲空(即表格已填充),則必須啓動活動B.
我無法找到一個方法,可以告訴我,如果表是空的或沒有。 我曾嘗試使用的日誌如下:
private void showSubjectsOnList() {
String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
+ " GROUP BY " + SUBJECT + ";";
Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);
Log.d("Events",Integer.toString(cursor.getCount()));
if(cursor.isNull(0)!=false){
cursor.close();
subjects.close();
startActivity(new Intent(this,OpenScreen.class));
}
}
但日誌顯示1,如果表是空的...和1再次,如果表中有1項....它顯示2,如果表有兩個條目等等。
你能否提出一些解決我的問題的方法,根據遊標是否爲空來開始不同的活動。
我還沒有嘗試完全按照你提到的方式。不過,我嘗試使用 光標= NULL 爲好,如下: Log.d(! 「活動」,Boolean.toString(光標= NULL)); 有趣的是,如果表中有一些值,則Log顯示爲true,但是如果表是空的,那麼令人驚訝的是日誌根本不顯示。我很困惑這是什麼意思。 –
在測試之前,不要忘記將光標的指針移動到第一個帶有 'cursor.moveToFirst()'的記錄 –
這意味着您的查詢返回零行。這意味着光標不爲空,但零行:D –