Bảng cơ sở dữ liệu SQLite mà tôi đang sử dụng phải chịu thêm cột bất cứ khi nào tôi cần. Tôi không muốn mã hóa cứng các cột có nguy cơ cập nhật cơ sở dữ liệu và quên cập nhật các giá trị được mã hóa cứng. Làm thế nào tôi có thể trả về tất cả tên của các cột trong một bảng? (Tốt nhất là trong một String[]
)Trả về tất cả các cột của bảng SQLite trong Android
Trả lời
tốt nhất nếu bạn sử dụng một phương pháp truy vấn SQLiteDatabase
dụ và sử dụng
SQLiteDatabase mDataBase;
(some code here...)
mDataBase = getReadableDatabase();
Cursor dbCursor = mDataBase.query(TABLE_NAME, null, null, null, null, null, null);
String[] columnNames = dbCursor.getColumnNames();
columnNames
phải có các tên cột
Bạn có thể không cần danh sách tên cột.
Dường như bạn muốn danh sách tên cột để bạn có thể tạo danh sách cột được phân cách bằng dấu phẩy để chọn. Nếu đây là trường hợp, sau đó, nơi bạn sẽ thường đặt danh sách các tên cột trong truy vấn SELECT của bạn, bạn thay vì có thể sử dụng dấu hoa thị:
SELECT * FROM table WHERE ...
Hoặc nếu bảng được aliased:
SELECT t.* FROM table AS t ...
Dấu hoa thị có nghĩa là "tất cả các cột".
EDIT: Nếu bạn thực sự làm muốn có một danh sách các tên cột của một bảng, sau đó bạn có thể sử dụng đoạn mã sau:
Cursor c = db.rawQuery("SELECT * FROM table WHERE 0", null);
try {
String[] columnNames = c.columnNames();
} finally {
c.close();
}
Lưu ý rằng bạn không được sửa đổi mảng được trả về của Strings trong bất kỳ cách: https://code.google.com/p/android/issues/detail?id=3731
Tại sao 'WHERE 0' được sử dụng? Chúng ta không thể làm mà không có? : O –
Một điều thú vị nữa là phương thức truy vấn chấp nhận null làm đầu vào cho các tham số cột. Nếu bạn nhập null, tất cả các cột sẽ được trả về.
db.query("Table_name",null,COLUMN_ID + "=" + id,null,null,null,null);
Sẽ trả về tất cả các cột của dòng có id được chỉ định.
Bạn có thể xem định nghĩa phương thức tại đây.
Từ 'if (cột! = Null && columns.length! = 0) { appendColumns (truy vấn, cột); } else { query.append ("*"); } ' – Renatinn
- 1. SQL với LIMIT1 trả về tất cả các hồ sơ
- 2. Chọn tất cả các cột cho tất cả các bảng trong tham gia + LINQ tham gia
- 3. Làm cách nào để trả về TẤT CẢ các cột trong một bảng và chỉ một vài cột trong một bảng khác bằng cách tham gia?
- 4. mySQL trả về tất cả các hàng khi trường = 0
- 5. Index tất cả các cột
- 6. Meteor - collection.find() luôn trả về tất cả các trường
- 7. Trả về tất cả các giá trị bao gồm NULL
- 8. Tất cả các cột trong MongoDB
- 9. Xóa tất cả các hàng trong bảng khỏi bảng cơ sở dữ liệu SQLite
- 10. jquery nhận tất cả các giá trị từ cột bảng
- 11. GWT TypeOracle.getTypes không trả về tất cả các loại
- 12. CodeIgniter trả về tất cả các lĩnh vực như chuỗi
- 13. XmlHttpRequest getAllResponseHeaders() không trả về tất cả các tiêu đề
- 14. Nhận tất cả các hàng từ SQLite
- 15. MySQL đếm tất cả các cột NULL
- 16. Giá trị cài đặt cho một cột của tất cả các bản ghi trong bảng
- 17. getHeight trả về 0 cho tất cả các đối tượng giao diện người dùng Android
- 18. activerecord - cách lấy tất cả cột của các bảng đã tham gia
- 19. Xóa tất cả các hàng trong bảng
- 20. Xóa cột khỏi bảng SQLite
- 21. Điều gì về đa luồng trong SQLite của Android?
- 22. Bắt tất cả hồ sơ từ sqlite android
- 23. SQLite: Nhận Tổng số/Tổng của Cột
- 24. Chọn từ tất cả các bảng - MySQL
- 25. Máy chủ SQL: Cách thực hiện Rtrim trên tất cả các cột VARCHAR của một bảng
- 26. Làm cách nào để chọn tất cả các cột từ bảng, cộng với các cột bổ sung như ROWNUM?
- 27. Prefix tất cả các cột trong câu lệnh T-SQL
- 28. Android :: SQLite, không tìm thấy cột nào?
- 29. Tìm kiếm tất cả các bảng, tất cả các cột cho một giá trị cụ thể SQL Server
- 30. Chọn tất cả các cột sau JOIN trong LINQ
và vui lòng cho tôi biết cách lấy giá trị từ một cột cụ thể? – Apurva
Con trỏ dbCursor = mDataBase.query (TABLE_NAME, chuỗi mới [] {YOUR_COLUMN_NAME_1, YOUR_COLUMN_NAME_2, ....}, null, null, null, null, null); –
getReadableDatabase là gì? –