- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
[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: 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 :)