- [C#] Hướng dẫn giải nén file *.rar với tiến trình progress bar winform
- [C#] Chia sẻ source code make Crazy Error Message Effect Bomb Windows
- [C#] Lập trình ứng dụng theo mô hình MVP Model-View-Presenter Pattern Winform
- [C#] Giới thiệu và những thứ hay ho từ thư viện System.Reactive của Microsoft
- [C#] Hướng dẫn tạo ứng dụng Chat với GPT sử dụng Open AI API
- [DEVEXPRESS] Tạo month picker trên DateEdit Winform C#
- [DATABASE] Cách sử dụng và lưu ý khi sử dụng khóa ngoại (Foreign Key) trong Sqlserver
- [C#] Garbage Collector (GC) là gì? Cách giải phóng bộ nhớ trên ứng dụng Winform khi các đối tượng không còn sử dụng
- [C#] Cách tính độ tương phản màu sắc Contrast Color mà con người có thể nhìn thấy được
- [C#] Hướng dẫn mã hóa mật khẩu tài khoản ứng dụng đúng chuẩn Men
- [C#] Sử dụng Open AI Chat GPT viết ứng dụng Count down timer có hiệu ứng trên winform
- [DATABASE] Chia sẻ dữ liệu Pantone Color sql và json api
- [SQLSERVER] Tạo mã sản phẩm tự động như: SP0001, SP0002, SP0003... sử dụng Trigger
- [C#] Hướng dẫn kiểm tra phiên bản NET Framework cài đặt ở máy tính
- [C#] Hướng dẫn đọc file excel đơn giản sử dụng thư viện Epplus
- [C#] ConcurrentBag là gì và cách sử dụng nó trong lập trình bất đồng bộ
- [C#] AutoResetEvent là gì và cách sử dụng
- [DEVEXPRESS] Chia sẻ source code cách tạo biểu đồ sơ đồ tổ chức công ty Org Chart trên Winform C#
- [C#] Hướng dẫn tạo Auto Number trên Datagridview winform
- [DATABASE] Hướng dẫn tạo Procedure String Split in Mysql
Hướng dẫn lập trình Insert - Update - Delete sử dụng Procedure Sqlserver 2008
Hôm nay, mình xin hướng dẫn các bạn thêm, xóa, sửa dữ liệu trong vb.net sử dụng store procedure, Tại sao mình phải sử dụng store procedure để thao tác với dữ liệu.
- Sử dụng store procedure sẽ chống được lỗi sql injection
- Truy vấn dữ liệu sẽ nhanh hơn với bộ nhớ đệm.
- Khi bạn muốn thay đổi dữ liệu, bạn sẽ dễ dàng thay đổi trực tiếp trên database, không cần chỉnh sửa code.
Dưới đây là giao diện ứng dụng:
- Đầu tiên, các bạn cần phải tạo ra ba procedure cho hàm insert, update và delete
+ Viết hàm insert
-- Tạo procedure thêm dữ liệu
CREATE PROCEDURE InsertDataIntoTable
@Name nvarchar(50),
@Email nvarchar(80),
@Age int
AS
BEGIN
INSERT INTO tbl_sinhvien(name, email, age)
VALUES ( @Name, @email, @age)
END
+ Viết hàm update
-- Tạo procedure cập nhật dữ liệu
CREATE PROCEDURE UpdateDataInsideTable
@name nvarchar(50),
@email nvarchar(70),
@age int,
@id int
AS
BEGIN
UPDATE tbl_sinhvien
SET Name = @name, email = @email, age = @age
WHERE id = @id
END
+ Viết hàm Delete
-- Tạo procedure xóa dữ liệu tbl_sinhvien theo id
CREATE PROCEDURE DeleteDataFromTable
@id int
AS
BEGIN
DELETE FROM tbl_sinhvien
WHERE id = @id
END
* Video hướng dẫn chi tiết code ứng dụng
- Bắt đầu code ứng dụng.
+ Import thư viện sql vào vb.net
Imports System.Data.SqlClient
+ Khai báo biến sqlconnection cục bộ
Dim con As New SqlConnection
+ Viết hàm Tạo kết nối vb.net với database
Public Sub Taoketnoi()
Try
Dim strketnoi As String = "Data Source=DESKTOP-BSIR50M;Initial Catalog=sinhvien;Integrated Security=True"
con.ConnectionString = strketnoi
con.Open()
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
+ Viết hàm đóng kết nối vb.net với database
Public Sub Dongketnoi()
Try
con.Close()
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
+ Viết một function để load data
Public Function LoadData() As DataSet
Taoketnoi()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("SELECT id as [Mã sinh viên], name as [Tên sinh viên], email as [Email], age as [Tuổi] FROM tbl_sinhvien", con)
da.Fill(ds)
Dongketnoi()
Return ds
End Function
+ Viết sự kiện cho form_load khi load form lên sẽ hiện thị nội dung vào datagridview
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim ds As New DataSet
ds = LoadData()
grvSinhvien.DataSource = ds.Tables(0)
txtId.DataBindings.Clear()
txtName.DataBindings.Clear()
txtEmail.DataBindings.Clear()
txtAge.DataBindings.Clear()
txtId.DataBindings.Add("text", ds.Tables(0), "Mã sinh viên")
txtName.DataBindings.Add("text", ds.Tables(0), "Tên sinh viên")
txtEmail.DataBindings.Add("text", ds.Tables(0), "Email")
txtAge.DataBindings.Add("text", ds.Tables(0), "Tuổi")
'deleteText()
End Sub
+ Viết sự kiện save dữ liệu xuống database
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Taoketnoi()
Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "insertdataintotable"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("name", txtName.Text)
cmd.Parameters.AddWithValue("email", txtEmail.Text)
cmd.Parameters.AddWithValue("age", txtAge.Text)
cmd.ExecuteNonQuery()
Dongketnoi()
Form1_Load(sender, e)
deleteText()
End Sub
+ Viết một sub xóa text khi lưu thành công và đặt name là con trỏ (focus)
Public Sub deleteText()
txtId.Text = ""
txtName.Text = ""
txtEmail.Text = ""
txtAge.Text = ""
txtName.Focus()
End Sub
+ Viết sự kiện update dữ liệu
Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
Taoketnoi()
Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "updatedatainsidetable"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("id", txtId.Text)
cmd.Parameters.AddWithValue("name", txtName.Text)
cmd.Parameters.AddWithValue("email", txtEmail.Text)
cmd.Parameters.AddWithValue("age", txtAge.Text)
cmd.ExecuteNonQuery()
Dongketnoi()
Form1_Load(sender, e)
End Sub
+ Viết sự kiện delete dữ liệu
Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
Taoketnoi()
Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "deletedatafromtable"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("id", txtId.Text)
cmd.ExecuteNonQuery()
Dongketnoi()
Form1_Load(sender, e)
End Sub
Vậy là xong. Bây giờ bạn có thể chạy ứng dụng để thưởng thức thành quả
Cám ơn các bạn đã xem bài viết. Hãy like and share giúp mình nha các bạn.
Các bạn có thể Đăng ký kênh Youtube của mình ở góc phải bên trên màn hình.
Mọi thắc mắc về bài viết các bạn có thể hỏi ở http://hoidap.laptrinhvb.net để được support.