SQLite Trong Android (Phần 2)

SQLite Trong Android

Phần 2: Thao tác Sửa, Xóa và Tìm Kiếm trong SQLite

1. Giới thiệu.

Xin chào các bạn!! Ở phần 1 mình đã giới thiệu cho các bạn biết thế nào là SQLite trong Android, đồng thời mình cũng đã hướng dẫn các bạn cách Cấu hìnhInsert một dòng mới vào bảng đã tạo trong SQLite rồi đúng không!. Hôm nay, mình sẽ tiếp tục hướng dẫn các bạn về những thao tác Sửa, XóaTìm kiếm trên một bảng trong SQLite nhé!.

Về project thì chúng ta vẫn sử dụng Project cũ của phần 1, nhưng file activity_main.xml chúng ta sẽ thêm 3 Button để thực hiện chức năng Sửa, Xóa và Tìm kiếm, cụ thể chúng ta sửa lại như sau:

Trong MainActivity chúng ta khai báo và ánh xạ 3 Button này:

Ở đây mình có khai báo thêm một biến position, biến này có công dụng là để lưu lại vị trí của dòng mình muốn sửa hay xóa, các btnSua, btnXoa, btnTimKiem các bạn Ánh xạ như bình thường nhé.

2. Thao tác Sửa trong SQLite.

Đầu tiên, để Sửa được một dòng trong SQLite, các bạn phải bắt sự kiện OnItemClickListener() của lvDanhsach, sự kiện này có tác dụng là khi Click vào 1 dòng trong ListView, nó sẽ hiển thị giá trị của dòng đó lên EditText Tên Sinh Viên để chúng ta sửa. Sự kiện OnItemClickListener() của chúng ta sẽ như sau:

Ở đây, i chính là vị trí item mà chúng ta Click vào trên ListView, chúng ta sẽ lưu vị trí này lại để sử dụng cho các tác vụ SửaXóa.

Bây giờ, khi đã có vị trí cần SửaTên sinh viên cần sửa rồi, chúng ta sẽ bắt sự kiện Click của btnSua:

Mình sẽ giải thích một chút về code nhé!! Ở đây mình sẽ gọi hàm TruyVanKhongTraVe() của Class DataSlite vì câu lệnh mình muốn thao tác ở Nhóm 1 (các bạn có thể xem lại ở Phần 1, mục 1). Để sửa một dòng trong SQLite, các bạn sử dụng câu lệnh Update, trong hàm này các bạn truyền vào Tên bảng muốn sửa, Nội dung của cột muốn sửa, các bạn có thể sửa nhiều cột, mỗi cột sẽ phân cách nhau bằng dấu phẩy, và cuối cùng là một Điều kiện, điều kiện của mình là ID của Sinh viên cần sửa, ở đây mình sẽ lấy ra ID dựa vào position đã lưu lúc nãy.

Lưu ý quan trọng, các bạn phải có điều kiện nhé, nếu KHÔNG có điều kiện, tất cả các dòng trong bảng của bạn sẽ cùng cập nhật, lúc này tất cả Tên sinh viên sẽ giống nhau hết đấy!!!.

3. Thao tác Xóa trong SQLite.

Để Xóa một dòng trong SQLite các bạn bắt sự kiện Click cho btnXoa như sau:

Trong sự kiện này, các bạn gọi hàm TruyVanKhongTraVe() của Class DataSqlite vì câu lệnh mình muốn thao tác ở Nhóm 1 (Các bạn có thể xem lại ở Phần 1, Mục 1). Để Xóa một dòng trong bảng, chúng ta dùng câu lệnh Delete và truyền vào 2 thứ đó là Tên bảng có dòng cần xóa cùng với Điều kiện cần xóa, các bạn có thể xóa theo bất cứ điều kiện nào mà mình thích ví dụ Tên sinh viên, Tuổi, Địa chỉ,… nhưng thường người ta chỉ xóa theo Mã số mà thôi.

Lưu ý đặc biệt, cũng giống như sửa, khi xóa các bạn phải truyền vào một điều kiện, nếu KHÔNG có điều kiện, toàn bộ dữ liệu trong bảng của các bạn sẽ bị xóa hết đấy!!.

Sau khi Sửa hay Xóa, chúng ta gọi lại hàm LoadData() để nó cập nhật lại dữ liệu lên ListView cho chúng ta.

4. Thao tác Tìm kiếm trong SQLite.

Để Tìm kiếm trong SQLite, chúng ta tiến hành bắt sự kiện Click của btnTimKiem như sau:

Để Tìm kiếm, chúng ta sử dụng hàm TruyVanTraVe() của Class DataSqlite, vì câu lệnh chúng ta muốn thao tác ở Nhóm 2 (Có thể xem lại ở Phần 1, Mục 1). Bản chất của việc Tìm kiếm trong SQLite đó là chúng ta sẽ dùng một câu lệnh Select nhưng đi kèm thêm với điều kiện, ở đây mình tìm kiếm theo Tên sinh viên nên điều kiện của mình sẽ là Tên sinh viên, các bạn cũng có thể tìm kiếm theo mã, hoặc cùng lúc tìm kiếm theo Mã sinh viên và Tên sinh viên, chỉ cần chúng ta tùy biến lại câu Select mà thôi.

Trong câu lệnh trên, mình sẽ tìm kiếm tất cả Sinh viên có tên giống tên mình nhập vào EditText, sau đó đổ vào ArrayList và hiển thị lên ListView. Các bạn thấy mình dùng cú pháp like‘%’ là để lấy các dữ liệu gần giống trong SQLite (cái này các bạn có thể xem thêm bên SQL Server).

Lưu ý, cái này mình đã nói ở Phần 1 rồi nhưng mình sẽ nhắc lại, đó là chuỗi trong SQLite các bạn phải đặt trong 1 dấu nháy ‘  ‘, nếu không có dấu này khi build sẽ bị lỗi đấy nhé!!!!.

5. Tổng kết.

Sau khi các bạn code xong các phần trên, MainActivity hoàn chỉnh của chúng ta sẽ như sau:

Như vậy, khi đi qua 2 Phần đầu tiên của loạt bài SQLite, các bạn đã nắm được các thao tác Thêm, Sửa, XóaTìm Kiếm với SQLite trong Android rồi phải không nào?. Ở Phần 3, mình sẽ giới thiệu cho các bạn một vấn đề rất hấp dẫn đó là Intent CameraThêm ảnh vào SQLite!!

Xin Chào Và Hẹn Gặp Lại các bạn ở Phần 3.