- [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
- [SQLSERVER] Hướng dẫn tạo script sql từ ứng dụng Sqlserver management Studio
- [C#] Hướng dẫn sử dụng thư viện AutoITx lấy id và password Ultraviewer trên winform
- [VB.NET] Hướng dẫn lấy thông tin tài khoản đăng nhập windows và khởi động lại ứng dụng ở chế độ Administrator
- [C#] Sử dụng thư viện Polly gửi lại request api khi request bị lỗi hay rớt mạng
- [DEVEXPRESS] Chia sẻ source code tạo báo cáo report in tem nhãn label trên C# winform
- [DEVEXPRESS] Hướng dẫn vẽ biểu đồ Bar Chart trên Winform
- [C#] Tạo form đăng nhập và đăng ký với hiệu ứng Sliding Animation Effect
- [C#] Hướng dẫn tạo thanh toán đơn hàng qua mã vạch VietQR sử dụng API PayOS hoàn toàn miễn phí
- [C#] Hướng dẫn ghi log ra RichTextBox giống Console trên Winform sử dụng thư viện Serilog
- [C#] Hướng dẫn cách tạo mã QR Code trên file Excel
- [VB.NET] Gởi tin nhắn và file đính kèm qua ứng dụng gởi tin nhắn Whats App
- [C#] Viết ứng dụng Auto Fill list Textbox from clipboard Winform
- [TOOL] Chia sẻ phần mềm thay đổi thông tin cấu hình máy tính
- [C#] Hướng dẫn Export dữ liệu ra file Microsoft Word Template
- [C#] Chia sẻ source code tool kiểm tra domain website
Hướng dẫn lập trình thêm - xoá - sửa với Entity Framework 6 (Crud database with Entity Framework in VB.NET)
Entity Framework là gì?
ADO.NET Entity Framework là một nền tảng được sử dụng để làm việc với database thông qua cơ chế ánh xạ Object/Relational Mapping (ORM). Nhờ đó, bạn có thể truy vấn, thao tác với database gián tiếp thông qua các đối tượng lập trình.
Dưới đây là kiến trúc của Entity Framework:
Định nghĩa Entity Framework theo Microsoft
Microsoft ADO.NET Entity Framework là một khuôn khổ đối tượng Object/ Bảng đồ quan hệ Relational Mapping (ORM) cho phép các nhà phát triển dể dàng làm việc với dữ liệu quan hệ như là các đối tượng domain-specific, loại bỏ đi sự khó khăn trong việc truy cập dữ liệu trước đây. Bằng cách sử dụng Entity Framework, truy vấn LINQ, thì việc lấy và thao tác dữ liệu như các đối tượng trở nên mạnh mẽ hơn. Entity Framework ORM cung cấp các dịch vụ như change tracking, idenity resolution, lazay loading, và truy vấn dữ liệu tập trung vào business logic của ứng dụng.
Đơn giản có thể định nghĩa Entity Framework như sau: Entity Framework là một khung Object/Relational Mapping (O/RM). Nó là một kỹ thuật mới cung cấp cho các nhà phát triển ADO.NET một cơ chế tự động để truy cập và lưu trữ dữ liệu trong cơ sở dữ liệu và làm việc với các kết quả ngoài DataReader và DataSet.
Mình chỉ giới thiệu sơ qua cho các bạn về Entity Framework, còn tại sao phải sử dụng Entity Framework, hay Entity Framework khác ADO.NET và Linq 2 Sql như thế nào, thì các bạn có thể tìm hiểu thêm trên google nhé.
+ Bây giờ, mình sẽ demo cho các bạn những chức năng cơ bản: Thêm, Lưu, Xoá, Sửa trên nền tảng Entity framework.
Entity Framework cũng sử dụng cấu trúc truy vấn giống Linq, các bạn có thể tìm hiểu thêm về Linq tại đường dẫn sau:
Giao diện demo của chương trình:
- Đầu tiên, các ban Right click vào solution chon new items, sau đó tạo một file ADO.NET entity framework như hình bên dưới:
Dưới đây là source code của chương trình:
Imports System.ComponentModel
Imports System.IO
Imports System.Text
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraGrid.Views.Grid.ViewInfo
Partial Public Class Form1
Inherits DevExpress.XtraEditors.XtraForm
Shared Sub New()
DevExpress.UserSkins.BonusSkins.Register()
DevExpress.Skins.SkinManager.EnableFormSkins()
End Sub
Public Sub New()
InitializeComponent()
End Sub
Dim sinhvienEntities As New sinhvienEntities()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FillData()
GridView1.RowHeight = 120
End Sub
Public Sub FillData()
Dim query = From t In sinhvienEntities.sinhviens Order By t.id Descending
GridControl1.DataSource = query.ToList
loadToField()
End Sub
Public Sub loadToField()
Dim rowIndex As Integer = GridView1.GetFocusedDataSourceRowIndex
Dim view As GridView = TryCast(GridControl1.FocusedView, GridView)
Dim id As Integer = CInt(view.GetRowCellValue(rowIndex, view.Columns("id")))
Dim tk As sinhvien = sinhvienEntities.sinhviens.Single(Function(t) t.id.Equals(id))
txtId.Text = tk.id.ToString
txtName.Text = tk.name.ToString
txtDate.Text = tk.birthday.ToString
txtAddress.Text = tk.address.ToString
Dim pictureBytes As New MemoryStream(tk.image)
picImage.Image = Image.FromStream(pictureBytes)
End Sub
Private Sub GridView1_DoubleClick(sender As Object, e As EventArgs) Handles GridView1.RowCellClick
loadToField()
End Sub
Public Function ImageToByte(img As Image) As Byte()
Dim byteArray As Byte() = New Byte(-1) {}
Using stream As New MemoryStream()
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png)
stream.Close()
byteArray = stream.ToArray()
End Using
Return byteArray
End Function
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
Try
Dim id As Integer = CInt(txtId.Text)
Dim sinhvien As sinhvien = sinhvienEntities.sinhviens.[Single](Function(t) t.id.Equals(id))
sinhvien.name = txtName.Text
sinhvien.birthday = CDate(txtDate.Text)
sinhvien.address = txtAddress.Text
sinhvien.image = ImageToByte(picImage.Image)
sinhvienEntities.SaveChanges()
FillData()
Catch
MessageBox.Show("Cập nhật không thành công!")
End Try
End Sub
Private Sub SimpleButton3_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
picImage.Image = Nothing
txtId.Text = ""
txtDate.Text = ""
txtAddress.Text = ""
txtName.Text = ""
End Sub
Private Sub SimpleButton4_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Dim sinhvien As New sinhvien()
sinhvien.name = txtName.Text
sinhvien.birthday = CDate(txtDate.Text)
sinhvien.address = txtAddress.Text
sinhvien.image = ImageToByte(picImage.Image)
sinhvienEntities.sinhviens.Add(sinhvien)
sinhvienEntities.SaveChanges()
FillData()
End Sub
Private Sub btnDel_Click(sender As Object, e As EventArgs) Handles btnDel.Click
Dim id As Integer = CInt(txtId.Text)
Dim dialogResult As DialogResult = MessageBox.Show("Bạn có chắc chắn muốn xoá không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
If dialogResult = DialogResult.Yes Then
Dim sinhvien As sinhvien = sinhvienEntities.sinhviens.[Single](Function(t) t.id.Equals(id))
sinhvienEntities.sinhviens.Remove(sinhvien)
sinhvienEntities.SaveChanges()
FillData()
End If
End Sub
End Class
VIDEO DEMO ỨNG DỤNG:
CHÚC CÁC BẠN THÀNH CÔNG!