Tôi có một bảng SQL mà được tạo ra bởi đoạn mã sau:Cách kiểm tra xem con trỏ rỗng trong một Query 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);");
}
tôi truy vấn bảng như sau:
String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
+ " GROUP BY " + SUBJECT + ";";
Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);
Vấn đề là tôi phải bắt đầu Hoạt động A nếu con trỏ trống (nghĩa là bảng không lưu trữ giá trị) và Hoạt động B nếu con trỏ không trống (nghĩa là bảng được điền).
Tôi không thể tìm thấy phương pháp có thể cho tôi biết liệu bảng có trống hay không. Tôi đã cố gắng sử dụng Log như sau:
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));
}
}
Nhưng LOG thấy 1, nếu bảng là trống rỗng ... và một lần nữa 1, nếu bảng có 1 entry .... nó cho thấy 2, nếu bảng có hai mục và v.v.
Bạn có thể đề xuất một số phương pháp giải quyết vấn đề bắt đầu các hoạt động khác nhau của tôi dựa trên con trỏ trống hay không.
Tôi chưa thử chính xác cách bạn đã đề cập. Nhưng tôi cố gắng sử dụng con trỏ = null là tốt, như sau: Log.d (! "Sự kiện", Boolean.toString (con trỏ = null)); Điều thú vị là Nhật ký hiển thị đúng nếu bảng có một số giá trị, nhưng đáng ngạc nhiên là nhật ký không được hiển thị chút nào nếu bảng trống. Tôi bối rối điều đó có nghĩa là gì. –
Đừng quên di chuyển con trỏ của con trỏ đến bản ghi đầu tiên với 'cursor.moveToFirst()' trước khi bạn kiểm tra –
Điều đó có nghĩa là truy vấn của bạn trả về 0 hàng. Điều đó có nghĩa là con trỏ không phải là null nhưng không có hàng: D –