If Btn_Update.Text = "Sửa" Then Btn_Add.Text = "Lưu" Btn_Update.Text = "Hủy" Set_Enabled(False)
Else
Btn_Add.Text = "Thêm" Btn_Update.Text = "Sửa" Set_Enabled(True)
i = 0 Display(i)
End If End Sub
- Sự kiện click của nút Xóa
Private Sub Btn_Delete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Delete.Click
Dim sqlstr As String
sqlstr = "Delete from sinhvien where masv=@masv" Dim cmd As New SqlCommand(sqlstr, cn)
cmd.Parameters.Add("@masv", SqlDbType.NVarChar).Value
= txt_masv.Text
If MsgBox("Bạn có muốn xóa sinh viên này không ?", MsgBoxStyle.OkCancel, "Thông báo") = MsgBoxResult.Ok Then
cmd.ExecuteNonQuery() DisplayTable()
End If End Sub
- Sự kiện click của nút Thoát
Private Sub Btn_New_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Close.Click
Me.Close() End Sub
Chú ý rằng các sự kiện thêm, sửa, xóa ta có thể dùng thủ tục lưu trữ (Stored Procedure) để thay cho việc viết các câu lệnh trực tiếp trong môi trường VB.Net. Ưu điểm của việc sử dụng thủ tục lưu trữ là ta có thể kiểm soát được dữ liệu khi thêm, sửa xóa.
Trong SQL Server ta tạo các thủ tục sau:
- Thủ tục thêm bản ghi cho bảng sinh viên: CREATE PROCEDURE sp_Insert_SV
@masv as nvarchar(10),
@hoten as nvarchar(50),
@ns as date,
@gt as nvarchar(3),
@diachi as nvarchar(30),
@mal as nvarchar(20) AS
BEGIN
declare @kt as bit set @kt=1
if exists (select 'true' from sinhvien where masv=@masv) begin
set @kt=0
raiserror('Mã sinh viên bị trùng',16,6) end
if LEN(@masv)=0 begin
set @kt=0
raiserror('Mã sinh viên không hợp lệ',16,6)
end
if LEN(@hoten)=0 begin
set @kt=0
raiserror('Họ tên sinh viên không hợp lệ',16,6)
end
if LEN(@diachi)=0 begin
set @kt=0
raiserror('Địa chỉ không hợp lệ',16,6)
end
if LEN(@mal)=0
begin
set @kt=0
raiserror('Mã lớp không hợp lệ',16,6)
end
if @kt=1 begin
insert into sinhvien(Masv,hoten,ns, gt,diachi,malop) values (@Masv,@hoten,@ns , @gt, @diachi ,@mal) end
END
- Thủ tục cập nhật bản ghi cho bảng sinh viên: CREATE PROCEDURE [dbo].[sp_UPDATE_SV]
@masv as nvarchar(10),
@hoten as nvarchar(50),
@ns as date,
@gt as nvarchar(3),
@diachi as nvarchar(30),
@mal as nvarchar(20) AS
BEGIN
declare @kt as bit set @kt=1
if LEN(@masv)=0 begin
set @kt=0
raiserror('Mã sinh viên không hợp lệ',16,6)
end
if LEN(@hoten)=0 begin
set @kt=0
raiserror('Họ tên sinh viên không hợp lệ',16,6)
end
if LEN(@diachi)=0 begin
set @kt=0
raiserror('Địa chỉ không hợp lệ',16,6)
end
if LEN(@mal)=0
end
begin
set @kt=0
raiserror('Mã lớp không hợp lệ',16,6)
if @kt=1 begin
update sinhvien
set hoten=@hoten,ns=@ns, gt=@gt,diachi=@diachi, malop=@mal where masv=@masv
end END
- Thủ tục xóa sinh viên:
CREATE PROCEDURE sp_Delete_SV
@masv as nvarchar(10)
AS BEGIN
delete from sinhvien where masv=@masv delete from diem where masv=@masv
END
Sau khi đã tạo các thủ tục lưu trữ, ta có thể sử dụng chúng để lập trình các sự kiện thêm, sửa, xóa.
- Sự kiện click của nút Thêm
Private Sub Btn_Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Add.Click
Dim cd As New SqlCommand() cd.Connection = cn cd.CommandText = "sp_Insert_SV"
cd.CommandType = CommandType.StoredProcedure If Btn_Add.Text = "Thêm" Then
Btn_Add.Text = "Lưu" Btn_Update.Text = "Hủy" Set_Null() Set_Enabled(False)
Else
Btn_Add.Text = "Thêm"
Btn_Update.Text = "Sửa" Set_Enabled(True)
cd.Parameters.Add("@masv", SqlDbType.VarChar).Value
= txt_masv.Text
cd.Parameters.Add("@hoten", SqlDbType.VarChar).Value = txt_hoten.Text cd.Parameters.Add("@ns", SqlDbType.Date).Value
= DateAndTime.DateValue(txt_ns.Text) cd.Parameters.Add("@gt", SqlDbType.Varchar).Value
= txt_gt.Text
cd.Parameters.Add("@diachi", SqlDbType.VarChar).Value = txt_qq.Text cd.Parameters.Add("@mal", SqlDbType.Varchar).Value
= txt_mal.Text cd.ExecuteNonQuery() DisplayTable()
End If End Sub
- Sự kiện click của nút Sửa
Private Sub Btn_Update_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Update.Click
Dim cd As New SqlCommand() cd.Connection = cn cd.CommandText = "sp_Update_SV"
cd.CommandType = CommandType.StoredProcedure If Btn_Update.Text = "Sửa" Then
Btn_Add.Text = "Lưu" Btn_Update.Text = "Hủy" Set_Enabled(False)
Else
Btn_Add.Text = "Thêm" Btn_Update.Text = "Sửa" Set_Enabled(True)
i = 0 Display(i)
End If End Sub
- Sự kiện click của nút Xóa
Private Sub Btn_Delete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Delete.Click
Dim cd As New SqlCommand() cd.Connection = cn cd.CommandText = "sp_Delete_SV"
cd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@masv", SqlDbType.NVarChar).Value
= txt_masv.Text
If MsgBox("Bạn có muốn xóa sinh viên này không ?", MsgBoxStyle.OkCancel, "Thông báo") = MsgBoxResult.Ok Then
cmd.ExecuteNonQuery() DisplayTable()
End If End Sub
Ví dụ 2: Thiết kế và lập trình Form quản lý thông tin của sinh viên theo mẫu sau.
Trên form cho phép sắp xếp và tìm kiếm theo mã sinh viên, họ tên, ngày sinh, địa chỉ.
Hình 8.8. Form sắp xếp và tìm kiếm sinh viên
Bước 1: Trong cửa sổ Solution Explorer-QLDiem, chọn dự án QLDiem/Chọn chuột phải/Chọn Add/Chọn Window Forms/Nhập tên form tại mục Name/Add
Hình 8.9. Tạo một form mới
Bước 2: Tạo một View đặt tên là lop, chỉ lấy thông tin của mã lớp.
Hình 8.10. Tạo View lớp
Bước 3: Thiết kế Form Quản lý thông tin sinh viên (frm_SVTK)
Đối tượng | Thuộc tính | Giá trị | |
1 | Form | Name | Frm_SVTK |
Text | Quản lý thông tin sinh viên | ||
2 | Lable | Text | Mã lớp |
3 | Group Box | Text | Sắp xếp |
4 | Group Box | Text | Tìm kiếm |
5 | Combo | Name | Cb_malop |
6 | Combo | Name | Cb_Sort |
Items | Mã sinh viên, Họ tên, Ngày sinh, Quê quán | ||
7 | Combo | Name | Cb_malop |
Items | Mã sinh viên, Họ tên, Ngày sinh, Quê quán | ||
8 | DataGridView | Name | Dgv_SV |
9 | Button | Name | Btn_Sort |
Có thể bạn quan tâm!
- Các Mô Hình Kết Nối Ứng Dụng Đến Sql Server
- Mối Liên Hệ Giữa Lớp Command Và Các Lớp Khác
- SQL Server - 31
- Xác Định Các Thông Số Của Cơ Sở Dữ Liệu
- Xác Định Các Thông Số Của Khóa Ngoại
- Thực Hiện Import Câu 2: Tạo View Thực Hiện Các Công Việc Sau:
Xem toàn bộ 323 trang tài liệu này.
Text | Sắp xếp | ||
10 | Button | Name | Btn_Search |
Text | Tìm kiếm |
Bước 4: Lập trình các sự kiện và thủ tục
- Khai báo của tên miền: Imports System.Data
Imports System.Data.SqlClient Imports System.Configuration
- Khai báo các đối tượng sử dụng trong phạm vi của form: Dim cnn As New SqlConnection()
Dim da As New SqlDataAdapter Dim oDS As DataSet
Dim oDV As DataView
- Thủ tục đưa dữ liệu của bảng sinh viên lên đối tượng DataGridView. Private Sub FillDataSetAndView()
oDS = New DataSet()
da.SelectCommand = New SqlCommand() da.SelectCommand.Connection = cnn
da.SelectCommand.CommandText = "SELECT * FROM Sinhvien WHERE MaLop= '"&cb_malop.SelectedItem(0)&"'" da.SelectCommand.CommandType = CommandType.Text
da.Fill(oDS, "Sinhvien")
oDV = New DataView(oDS.Tables("Sinhvien")) End Sub
- Thủ tục trang trí đối tượng DataGridView. Private Sub Grid() Dgv_SV.Columns(0).HeaderText = "Mã sinh viên" Dgv_SV.Columns(1).HeaderText = "Họ tên" Dgv_SV.Columns(2).HeaderText = "Ngày sinh" Dgv_SV.Columns(3).HeaderText = "Giới tính" Dgv_SV.Columns(4).HeaderText = "Địa chỉ" Dgv_SV.Columns(5).HeaderText = "Mã lớp"
End Sub
- Sự kiện Change của cb_malop
Private Sub cb_malop_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb_malop.SelectedIndexChanged