[C#] Lập trình thêm, xóa, sửa, tìm kiếm với Sqlite in C#
Hôm nay, mình sẽ chỉ cho các bạn cách làm việc với Sqlite trong lập trình C# . Sqlite là một hệ quản trị cơ sở dữ liệu, chắc không còn xa lạ với các bạn. Trong các bài viết trước mình đã hướng dẫn các bạn làm việc với các hệ quản trị cơ sở dữ liệu: ...
Hôm nay, mình sẽ chỉ cho các bạn cách làm việc với Sqlite trong lập trình C#. Sqlite là một hệ quản trị cơ sở dữ liệu, chắc không còn xa lạ với các bạn.
Trong các bài viết trước mình đã hướng dẫn các bạn làm việc với các hệ quản trị cơ sở dữ liệu: Access, Sqlserver, Mysql, Excel, Text...
Trong một số trường hợp, nếu các bạn muốn viết một tools nhỏ, thì Sqlite là một lựa chọn rất hợp lý. Thường thì các bạn có thể thấy các ứng dụng Android thường làm việc với cơ sỡ dữ liệu này.
SQLite là gì?
Nói một cách đơn giản SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) tương tự như Mysql, PostgreSQL... Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 400kB, không cần cài đặt, không cần cấu hình hay khởi động mà có thể sử dụng ngay. Dữ liệu Database cũng được lưu ở một file duy nhất. Không có khái niệm user, password hay quyền hạn trong SQLite Database.
SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm … và là sự lưa chọn phù hợp cho những người bắt đầu học Database.
SQLite Engine không là một Standalone Process giống như các cơ sở dữ liệu khác, bạn có thể liên kết nó một cách tĩnh hoặc một cách động tùy theo yêu cầu với ứng dụng của bạn. SQLite truy cập các file lưu giữ của nó một cách trực tiếp.
Giao diện ứng dụng làm việc với database Sqlite trong C#:
+ Đầu tiên, để các bạn làm việc được với Sqlite, các bạn cần vào thư viện Nuget để tải Sqlite về.
Hoặc các bạn có thể cài đặt thư viện từ Nuget command line:
PM> Install-Package System.Data.SQLite
- Đầu tiên các bạn import thư viện Sqlite vào solution C#
using System.Data.SQLite;
- Viết hàm tạo kết nối và đóng kết nối đến sqlite.
Các bạn có thể tham khảo thêm các hàm tạo kết nối C# với Sqlite tại link sau:
https://www.connectionstrings.com/sqlite/
SQLiteConnection _con = new SQLiteConnection(); public void createConection() { string _strConnect = "Data Source=MyDatabase.sqlite;Version=3;"; _con.ConnectionString = _strConnect; _con.Open(); } public void closeConnection() { _con.Close(); }
- Hàm tạo file sqlilte ví dụ trong bài này mình đặt tên là MyDatabase.sqlite
SQLiteConnection.CreateFile("MyDatabase.sqlite");
- Hàm tạo table sinh viên
public void createTable() { string sql = "CREATE TABLE IF NOT EXISTS tbl_students ([id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, fullname nvarchar(50), birthday varchar(15), email varchar(30), address nvarchar(100), phone varchar(11))"; SQLiteConnection.CreateFile("MyDatabase.sqlite"); createConection(); SQLiteCommand command = new SQLiteCommand(sql, _con); command.ExecuteNonQuery(); closeConnection(); }
- Hàm load dữ liệu vào datagridview và binding lên các textbox
public DataSet loadData() { DataSet ds = new DataSet(); createConection(); SQLiteDataAdapter da = new SQLiteDataAdapter("select id, fullname as [Full Name], email as [Email], address as [Address], phone as [Phone], birthday as [Birthday] from tbl_students", _con); da.Fill(ds); closeConnection(); return ds; } public void loadDataToGrid() { DataSet ds = loadData(); gvDataStudent.DataSource = ds.Tables[0]; txtID.DataBindings.Clear(); txtFullname.DataBindings.Clear(); txtBirthday.DataBindings.Clear(); txtEmail.DataBindings.Clear(); txtAddress.DataBindings.Clear(); txtPhone.DataBindings.Clear(); txtID.DataBindings.Add("text", ds.Tables[0], "id"); txtFullname.DataBindings.Add("text", ds.Tables[0], "Full name"); txtBirthday.DataBindings.Add("text", ds.Tables[0], "Birthday"); txtEmail.DataBindings.Add("text", ds.Tables[0], "Email"); txtAddress.DataBindings.Add("text", ds.Tables[0], "Address"); txtPhone.DataBindings.Add("text", ds.Tables[0], "Phone"); }
- Viết hàm lưu dữ liệu sinh viên
private void btnSave_Click(object sender, EventArgs e) { string fullname = txtFullname.Text; string birthday = txtBirthday.Text; string email = txtEmail.Text; string address = txtAddress.Text; string phone = txtPhone.Text; string strInsert = string.Format("INSERT INTO tbl_students(fullname, birthday, email, address, phone) VALUES('{0}','{1}','{2}','{3}','{4}')", fullname, birthday, email, address, phone); createConection(); SQLiteCommand cmd = new SQLiteCommand(strInsert, _con); cmd.ExecuteNonQuery(); closeConnection(); // load data loadDataToGrid(); }
+ Hàm update cập nhật dữ liệu
private void btnUpdate_Click(object sender, EventArgs e) { string id = txtID.Text; string fullname = txtFullname.Text; string birthday = txtBirthday.Text; string email = txtEmail.Text; string address = txtAddress.Text; string phone = txtPhone.Text; string strInsert = string.Format("UPDATE tbl_students set fullname='{0}', birthday='{1}', email='{2}', address='{3}', phone='{4}' where id='{5}'", fullname, birthday, email, address, phone, id); createConection(); SQLiteCommand cmd = new SQLiteCommand(strInsert, _con); cmd.ExecuteNonQuery(); closeConnection(); // load data loadDataToGrid(); }
- Hàm xóa dữ liệu
private void btnDelete_Click(object sender, EventArgs e) { string id = txtID.Text; string strInsert = string.Format("DELETE FROM tbl_students where id='{0}'", id); createConection(); SQLiteCommand cmd = new SQLiteCommand(strInsert, _con); cmd.ExecuteNonQuery(); closeConnection(); // load data loadDataToGrid(); }
HAVE FUN :)
DOWNLOAD SOURCE