2011-10-13 31 views
30

Tôi muốn lấy một số nguyên từ một con trỏ được trả lại từ truy vấn SQLite, nhưng tôi biết số nguyên có thể là rỗng. Thật không may tôi không thể tìm thấy bất kỳ phương pháp Cursor cho phép tôi kiểm tra này.SQLiteCursor sẽ làm gì nếu một cột là null?

Mã sẽ được

mModifiedDate = cursor.getInt(cursor.getColumnIndex(MODIFIED_DATE)); 

Tôi mong chờ một giá trị null có thể, và điều này là trong thực tế mong muốn vì những lý do-the nhiều lĩnh vực liên quan đến thời gian một bảng thứ hai đã được sửa đổi, và bảng đầu tiên có thể được điền trước khi thứ hai là. Thật không may, các tài liệu cho Cursor nói rằng liệu một ngoại lệ được ném, hoặc một giá trị lỗi được trả về, hoặc hành vi khác, còn lại để thực hiện, và tài liệu SQLiteCursor không nói bất cứ điều gì.

Mã này sẽ làm gì nếu trường này là rỗng? Có cách nào để kiểm tra điều này trước khi gọi getInt() không?

Trả lời

53

isNull() -method, chỉ cần sử dụng nếu trước để phát hiện giá trị null. Hãy nhớ rằng: Nó khá phổ biến đối với các phương thức trả về một boolean được đặt tên là isX() thay vì getX(), nó có thể là nguồn gây nhầm lẫn :)

+2

Ah, cảm ơn bạn! Điều đó có ý nghĩa. –

+0

Cảm ơn! Bạn có thể tìm thấy một chuỗi tốt khác về các ngày tải và lưu giữ trong andorid [tại đây] (http://stackoverflow.com/questions/7363112/best-way-to-work-with-dates-in-android-sqlite/17891061#17891061). – schnatterer

6

Từ kinh nghiệm của tôi, nó trả về 0. Nếu 0 không phải là câu trả lời có thể , sau đó bạn chỉ có thể kiểm tra 0. Nếu nó là một câu trả lời có thể, sau đó bạn cần phải làm như pgsandstrom đề nghị.

+2

0 là một câu trả lời có thể, do đó tôi cần một phương pháp tốt hơn; Tôi đã thực sự làm những gì @pgsandstrom đề xuất. –

Các vấn đề liên quan