02/10/2018, 00:15

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:

insert, update, delete sqlserver 2008 procedure vb.net

- Đầ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. heart

Tags: procedurecrud databasethêm xóa sửa tìm kiếm database
0