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ẽ ...
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ả
Download source
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.