ANHMATTROI – TIN5A
1
CẬP NHẬT CƠ SỞ DỮ LIỆU TRONG VB.NET
Link tải project ví dụ bên dưới:
http://www.mediafire.com/download/7c9b4vs2lp692jf/QLVP.rar
1. Tạo cơ sử dư liệu
Bạn tạo một project và đặt tên cho project là De4
- Tạo cơ sở dữ liệu:
Cơ sở dữ liệu và form thiết kế theo bài tập sau:
+ Tạo trên visual basic: click chuột phải vào tên project chọn add -> new folder và đặt tên cơ
thư mục là CSDL
ANHMATTROI – TIN5A
2
Tiếp theo bạn lại click chuột phải vào thư mực CSDL chọn add -> new item. Chọn SQL
Database trong visual studio 2012 là Service-based Database và đặt tên cho csdl là
QLVP.mdf
ANHMATTROI – TIN5A
3
Đợi một lúc hình sau hiện ra: các bạn click như trong hình
ANHMATTROI – TIN5A
4
+ Tiếp theo: bạn click chuột phải vào database QLVP.mdf chọn Open hình sau xuất hiện
ANHMATTROI – TIN5A
5
Bạn click chuột phải vào Tables chọn Add New Table và khai báo các cột như sau:
xong bạn lưu lại với tên bảng là NhanVien. Bạn lại click tiếp chuột phải vào Tables chọn Add
New Table và khai báo các cột:
rồi lưu lại với tên bảng là VP
+ Chèn dữ liệu vào bảng: bạn click chuột phải vào bảng NhanVien chọn Show Table Data
ANHMATTROI – TIN5A
6
Bạn có thể điền dữ liệu cho bảng nhân viên như hình sau: bạn nên điền hết hàng trước
Còn bảng VP bạn làm tượng tự như trên
+ Tạo một lớp KetNoi.vb trong project: bạn click chuột phải vào ten project chọn Add ->
New Folder và đăt tên cho thư mục này là Ket noi
ANHMATTROI – TIN5A
7
Tiếp theo bạn click chuột phải vào thư mục Ket noi chọn Add -> New Item và bạn chọn như
trong hình sau:
ANHMATTROI – TIN5A
8
+ Nội dung file KetNoi.vb:
Imports System.Data.SqlClient
Imports System.Data
Public Class KetNoi
Private cn As SqlConnection
„ hàm khởi tạo
Public Sub New()
cn = New SqlConnection()
End Sub
Public Function KetNoi() As Boolean
Try
cn.Open()
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Sub NgatKN()
If cn.State = ConnectionState.Open Then
cn.Close()
ANHMATTROI – TIN5A
9
End If
End Sub
Public Function TinhTrang() As Boolean
If cn.State = ConnectionState.Open Then
Return True
End If
Return False
End Function
Public Property ChuoiKN() As String
Get
Return cn.ConnectionString
End Get
Set(ByVal value As String)
cn.ConnectionString = value
End Set
End Property
Public Function LayDL(ByVal bang As String) As DataTable
Dim dtb As New DataTable()
Dim adt As SqlDataAdapter
Dim dts As New DataSet()
adt = New SqlDataAdapter("select * from " + bang, cn)
Try
adt.Fill(dts)
dtb = dts.Tables(0)
Catch loi As Exception
MessageBox.Show(loi.ToString(), "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Return dtb
End Function
Public Sub CapNhat(ByVal str As String)
Dim cm As SqlCommand
Try
cm = New SqlCommand(str, cn)
cm.ExecuteNonQuery()
Catch loi As Exception
MessageBox.Show(loi.ToString(), "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class
2. Thiết kế form
- Tạo thư mục chứa form: bạn click chuột phải vào tên project chọn Add -> New folder và
đặt tên cho thư mục là Giao dien. Tiếp theo bạn click chuột phải vào Form1.vb – được
ANHMATTROI – TIN5A
10
tạo ra lúc tạo project chọn Cut và Peste vào thư mục Giao dien, xong bạn đổi tên file
Form1.vb thành Main.vb
- Các file trong project De4:
- Tiếp theo: bạn kéo các đối tượng sau vào from: 1 MenuStrip, 2 Button, 1 TabControl, …
như trong hai hinh sau:
ANHMATTROI – TIN5A
11
ANHMATTROI – TIN5A
12
- Đổi tên biến
+ Các button:
ANHMATTROI – TIN5A
13
Button Tên biến Button Tên biến
Xem và cập nhật btXem First btFirst
Tìm kiếm btTimKiem << btTruoc
Hiển thị btHienThi >> btSau
Thêm btThem Last btLast
Sửa btSua
Tìm kiếm (button ở
trong tabpage tìm
kiếm)
btTK
Xóa btXoa
+ Các Label:
Label Tên biến Label Tên biến
Mã NV lbMaNV Ngày vi phạm lbNgayVP
Họ tên lbHoten Xư lí lbXuLi
Ngày Sinh lbNgaySinh Lương lbLuong
Giới tinh lbGioiTinh
Quê quán lbQueQuan
STT lbSTT
Vi phạm lbViPham
+ Các DataGridView: DataGridView ở tab xem và cập nhật đổi tên biến thành dtgrvXem,
DataGridView ở tab tìm kiếm đổi thành dtgrvTK
+ Các TextBox: đổi tên biến các TextBox
ANHMATTROI – TIN5A
14
Còn một TextBox trong tab tìm kiếm bạn đổi thanh tbTK
+ TabControl đổi thành tctr, TabPage Xem và cập nhật đổi thành tpXem, TabPage Tìm kiếm
đổi thành tpTimKiem
+ ComboBox đổi thành cbXem và điền danh sách bảng vào ComboBox như hình sau:
ANHMATTROI – TIN5A
15
+ Đổi MenuStrip thành mnstr, Form xem và cập nhật đổi thành mnCapNhat, Form tìm kiếm
đổi thành mnTimKiem, Thoát đổi thanh mnThoat
- Click chuột phải vào file Main.vb chọn View code rồi xóa hết code trong tab hiện ra rồi
copy đoạn code sau vào:
Public Class Main
Private TP As List(Of TabPage)
Private ibutton As Integer
Private dtbNV As DataTable
Private dtbVP As DataTable
Private kn As KetNoi
Private ikn As Integer
Private icn As Integer
Private Sub Bai2_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
kn = New KetNoi()
kn.ChuoiKN = " "
If Not kn.KetNoi() Then
MessageBox.Show("Lỗi kết nối", "Lỗi", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
kn = Nothing
Return
End If
TP = New List(Of TabPage)
TP.Add(tpXem)
TP.Add(tpTimKiem)
tctr.TabPages.RemoveAt(1)
ibutton = 0
dtbNV = New DataTable()
dtbVP = New DataTable()
ikn = 0
ANHMATTROI – TIN5A
16
icn = 0
End Sub
Private Sub Main_FormClosing(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
If kn.TinhTrang() Then
kn.NgatKN()
End If
End Sub
Private Sub btXem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btXem.Click, mnCapNhat.Click
If ibutton <> 0 Then
tctr.TabPages.Remove(TP(ibutton))
tctr.TabPages.Add(tpXem)
ibutton = 0
End If
End Sub
Private Sub btTimKiem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btTimKiem.Click, mnTimKiem.Click
If ibutton <> 1 Then
tctr.TabPages.Remove(TP(ibutton))
tctr.TabPages.Add(tpTimKiem)
ibutton = 1
End If
End Sub
Private Sub cbXem_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles cbXem.SelectedIndexChanged, btHienThi.Click
If kn.TinhTrang() Then
If cbXem.SelectedIndex = 0 Then
icn = 0
lbMaNV.Enabled = True
tbMaNV.Enabled = True
tbMaNV.Text = ""
tbMaNV.Focus()
lbHoTen.Enabled = True
tbHoTen.Text = ""
tbHoTen.Enabled = True
lbNgaySinh.Enabled = True
tbNgaySinh.Enabled = True
tbNgaySinh.Text = ""
lbGioiTinh.Enabled = True
tbGioiTinh.Enabled = True
tbGioiTinh.Text = ""
lbQueQuan.Enabled = True
tbQueQuan.Enabled = True
tbQueQuan.Text = ""
lbLuong.Enabled = True
tbLuong.Enabled = True
ANHMATTROI – TIN5A
17
tbLuong.Text = ""
lbSTT.Enabled = False
tbSTT.Enabled = False
tbSTT.Text = ""
lbViPham.Enabled = False
tbViPham.Enabled = False
tbViPham.Text = ""
lbNgayVP.Enabled = False
tbNgayVP.Enabled = False
tbNgayVP.Text = ""
lbXuLi.Enabled = False
tbXuLi.Enabled = False
tbXuLi.Text = ""
dtbNV = kn.LayDL("NhanVien")
dtgrvXem.DataSource = dtbNV
HienDLLenTextBox()
ElseIf cbXem.SelectedIndex = 1 Then
icn = 0
lbMaNV.Enabled = True
tbMaNV.Enabled = True
tbMaNV.Text = ""
'tbMaNV.Focus()
lbHoTen.Enabled = False
tbHoTen.Text = ""
tbHoTen.Enabled = False
lbNgaySinh.Enabled = False
tbNgaySinh.Enabled = False
tbNgaySinh.Text = ""
lbGioiTinh.Enabled = False
tbGioiTinh.Enabled = False
tbGioiTinh.Text = ""
lbQueQuan.Enabled = False
tbQueQuan.Enabled = False
tbQueQuan.Text = ""
lbLuong.Enabled = False
tbLuong.Enabled = False
tbLuong.Text = ""
lbSTT.Enabled = False
tbSTT.Enabled = False
tbSTT.Text = ""
lbViPham.Enabled = True
tbViPham.Enabled = True
tbViPham.Text = ""
tbViPham.Focus()
lbNgayVP.Enabled = True
tbNgayVP.Enabled = True
tbNgayVP.Text = ""
lbXuLi.Enabled = True
tbXuLi.Enabled = True
tbXuLi.Text = ""
dtbVP = kn.LayDL("VP")
ANHMATTROI – TIN5A
18
dtgrvXem.DataSource = dtbVP
HienDLLenTextBox()
End If
Else
MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _
MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub
Private Sub btTK_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btTK.Click
If kn.TinhTrang() Then
Dim adt As SqlClient.SqlDataAdapter
Dim dts As New DataSet()
Try
adt = New SqlClient.SqlDataAdapter("select * from NhanVien where MaNV = " _
+ tbTK.Text, kn.KN())
adt.Fill(dts)
dtbNV = dts.Tables(0)
dtgrvTK.DataSource = dtbNV
Catch ex As Exception
End Try
Else
MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _
MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub
Private Sub btXoa_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btXoa.Click
If kn.TinhTrang() Then
If cbXem.SelectedIndex = 0 Then
If dtgrvXem.RowCount > 1 Then
kn.CapNhat("delete NhanVien where MaNV = '" _
+ dtgrvXem.Item(0, icn).Value + "'")
icn = icn - 1
If icn < 0 Then
icn = 0
End If
dtbNV = kn.LayDL("NhanVien")
dtgrvXem.DataSource = dtbNV
Try
HienDLLenTextBox()
dtgrvXem.Rows(0).Selected = False
dtgrvXem.Rows(icn).Selected = True
Catch loi As Exception
End Try
End If
ElseIf cbXem.SelectedIndex = 1 Then
If dtgrvXem.RowCount > 1 Then
ANHMATTROI – TIN5A
19
kn.CapNhat("delete VP where STT = " _
+ dtgrvXem.Item(0, icn).Value.ToString())
icn = icn - 1
If icn < 0 Then
icn = 0
End If
kn.CapNhat("declare @i int set @i = 0 " + _
"update VP set STT = @i, @i = @i + 1")
dtbVP = kn.LayDL("VP")
dtgrvXem.DataSource = dtbVP
Try
HienDLLenTextBox()
dtgrvXem.Rows(0).Selected = False
dtgrvXem.Rows(icn).Selected = True
Catch loi As Exception
End Try
End If
End If
Else
MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _
MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub
Private Sub btThem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btThem.Click
If kn.TinhTrang() Then
If cbXem.SelectedIndex = 0 Then
Dim chuoi As String = "insert into NhanVien values('" + _
tbMaNV.Text + "',N'" + tbHoTen.Text + "','" + _
tbNgaySinh.Text + "',N'" + _
tbGioiTinh.Text + "',N'" + tbQueQuan.Text + "'," + _
tbLuong.Text + ")"
kn.CapNhat(chuoi)
dtbNV = kn.LayDL("NhanVien")
dtgrvXem.DataSource = dtbNV
HienDLLenTextBox()
Try
dtgrvXem.Rows(0).Selected = False
icn = dtgrvXem.RowCount - 2
dtgrvXem.Rows(icn).Selected = True
Catch loi As Exception
End Try
ElseIf cbXem.SelectedIndex = 1 Then
Dim chuoi As String = "insert into VP values(1, N'" + _
tbViPham.Text + "','" + tbNgayVP.Text + "',N'" + _
tbXuLi.Text + "','" + tbMaNV.Text + "')"
kn.CapNhat(chuoi)
kn.CapNhat("declare @i int set @i = 0 " + _
"update VP set STT = @i, @i = @i + 1")
dtbVP = kn.LayDL("VP")
ANHMATTROI – TIN5A
20
dtgrvXem.DataSource = dtbVP
HienDLLenTextBox()
Try
dtgrvXem.Rows(0).Selected = False
icn = dtgrvXem.RowCount - 2
dtgrvXem.Rows(icn).Selected = True
Catch loi As Exception
End Try
End If
Else
MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _
MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub
Private Sub btFirst_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btFirst.Click
If kn.TinhTrang() Then
If dtgrvXem.RowCount > 1 Then
dtgrvXem.Rows(icn).Selected = False
dtgrvXem.Rows(0).Selected = True
icn = 0
HienDLLenTextBox()
End If
End If
End Sub
Private Sub btLast_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btLast.Click
If kn.TinhTrang() Then
If dtgrvXem.RowCount > 1 Then
dtgrvXem.Rows(icn).Selected = False
icn = dtgrvXem.RowCount - 2
dtgrvXem.Rows(icn).Selected = True
HienDLLenTextBox()
End If
End If
End Sub
Private Sub btTruoc_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btTruoc.Click
If dtgrvXem.RowCount > 1 Then
dtgrvXem.Rows(icn).Selected = False
icn = icn - 1
If icn < 0 Then
icn = dtgrvXem.RowCount - 2
End If
dtgrvXem.Rows(icn).Selected = True
HienDLLenTextBox()
End If
End Sub
ANHMATTROI – TIN5A
21
Private Sub btSau_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btSau.Click
If dtgrvXem.RowCount > 1 Then
dtgrvXem.Rows(icn).Selected = False
icn = icn + 1
If icn > dtgrvXem.RowCount - 2 Then
icn = 0
End If
dtgrvXem.Rows(icn).Selected = True
HienDLLenTextBox()
End If
End Sub
Private Sub dtgrvXem_CellClick(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dtgrvXem.CellClick
icn = e.RowIndex
If icn < 0 Then
icn = 0
Return
End If
If icn = dtgrvXem.RowCount - 1 Then
dtgrvXem.Rows(icn).Selected = False
Return
End If
HienDLLenTextBox()
End Sub
Public Sub HienDLLenTextBox()
If cbXem.SelectedIndex = 0 Then
If dtgrvXem.RowCount > 1 Then
If icn = -1 Or icn = dtgrvXem.RowCount - 1 Then
Return
End If
Try
tbMaNV.Text = dtgrvXem.Item(0, icn).Value
tbHoTen.Text = dtgrvXem.Item(1, icn).Value
tbNgaySinh.Text = dtgrvXem.Item(2, icn).Value
tbGioiTinh.Text = dtgrvXem.Item(3, icn).Value
tbQueQuan.Text = dtgrvXem.Item(4, icn).Value
tbLuong.Text = dtgrvXem.Item(5, icn).Value
Catch loi As Exception
End Try
End If
ElseIf cbXem.SelectedIndex = 1 Then
If dtgrvXem.RowCount > 1 Then
If icn = -1 Or icn = dtgrvXem.RowCount - 1 Then
Return
End If
Try
ANHMATTROI – TIN5A
22
tbSTT.Text = dtgrvXem.Item(0, icn).Value
tbViPham.Text = dtgrvXem.Item(1, icn).Value
tbNgayVP.Text = dtgrvXem.Item(2, icn).Value
tbXuLi.Text = dtgrvXem.Item(3, icn).Value
tbMaNV.Text = dtgrvXem.Item(4, icn).Value
Catch loi As Exception
End Try
End If
End If
End Sub
Private Sub btSua_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btSua.Click
If kn.TinhTrang() Then
If cbXem.SelectedIndex = 0 Then
Dim chuoi As String = "update NhanVien set MaNV = '" + _
tbMaNV.Text + "',HoTen = N'" + tbHoTen.Text + "',NgaySinh = '" + _
tbNgaySinh.Text + "',GioiTinh = N'" + tbGioiTinh.Text + _
"',QueQuan = N'" + tbQueQuan.Text + "',Luong = " _
+ tbLuong.Text + " where MaNV = '" + tbMaNV.Text + "'"
kn.CapNhat(chuoi)
dtbNV = kn.LayDL("NhanVien")
dtgrvXem.DataSource = dtbNV
HienDLLenTextBox()
dtgrvXem.Rows(0).Selected = False
dtgrvXem.Rows(icn).Selected = True
ElseIf cbXem.SelectedIndex = 1 Then
Dim chuoi As String = "update VP set ViPham = N'" _
+ tbViPham.Text + "',NgayVP = '" + tbNgayVP.Text _
+ "',XuLi = N'" + tbXuLi.Text + "',MaNV = '" _
+ tbMaNV.Text + "' where STT = " _
+ dtgrvXem.Item(0, icn).Value.ToString()
kn.CapNhat(chuoi)
dtbVP = kn.LayDL("VP")
dtgrvXem.DataSource = dtbVP
HienDLLenTextBox()
dtgrvXem.Rows(0).Selected = False
dtgrvXem.Rows(icn).Selected = True
End If
Else
MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _
MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub
Private Sub mnThoat_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnThoat.Click
Me.Close()
End Sub
End Class
ANHMATTROI – TIN5A
23
3. Kết nối CSDL
a. CSDL tạo trên vb
- Mở cơ sở dữ liệu copy chuỗi kết nối: click chuột phải vào QLVP.mdf chọn Open ,
Đợi một lúc hình sau hiện ra, rồi bạn lại click chuột phải vào QLVP.mdf chọn properties.
Bạn copy toàn bộ chuỗi kết nối ở thẻ Connnection String: bạn nhớ copy đầy đủ trong thẻ này
ANHMATTROI – TIN5A
24
Peste toàn bộ chuỗi kết nối vào đây: trở lại đoạn code ở trên
Nếu trong chuỗi kết nối có dấu nháy đôi nào bạn xóa hết đi
 Bây giờ bạn có thể chạy chương trình của mình rui, chúc bạn thành công
b. CSDL tạo trên SQL Server
ANHMATTROI – TIN5A
25
- CSDL QLVP.mdf tạo trên sql server như sau:
+ Click vào Tool chọn Connect to Database
ANHMATTROI – TIN5A
26
Hình sau hiện ra bạn lại chọn như trong hình:
ANHMATTROI – TIN5A
27
Tiếp theo
Bạn mở sql server của bạn lên gõ hết các chữ ở hình sau vào Server name hay bước 1 ở hình
trên
ANHMATTROI – TIN5A
28
Hình này là sql server trên máy của mình còn trên máy của bạn là khác đấy
Sau khi bước 5 hoàn thành click vào các dấu cộng để mở csdl và click chuột phải vào
Xong bạn lại copy chuỗi kết nối và peste vào chỗ như mình đã trình bày ở trên
c. Kết nối tới file database đã có sẵn
ANHMATTROI – TIN5A
29
- Bạn click vào Tools chọn Connect to Database rồi chọn
Tiếp theo
ANHMATTROI – TIN5A
30
Tiếp theo
Ở bước 1 bạn duyệt đến chỗ bạn lưu database QLVP.mdf rồi click OK.
ANHMATTROI – TIN5A
31
xong rui bạn copy chuỗi kết nối
d. Kết nối CSDL bằng tài khoản “sa”
kn.ChuoiKN = “server = The_SunSQLEXPRESS; database = QLVP; uid = AMT; pwd
= anhmattroi”
+ Server: thường là <tên máy tính>SQLEXPRESS …
ANHMATTROI – TIN5A
32
+ Database: là tên database
+ Uid: là tài khoản sa, tài khoản sa ở trên mình đổi tên thành AMT
+ Pwd: là mật khẩu

Cap nhat CSDL trong VB.NET

  • 1.
    ANHMATTROI – TIN5A 1 CẬPNHẬT CƠ SỞ DỮ LIỆU TRONG VB.NET Link tải project ví dụ bên dưới: http://www.mediafire.com/download/7c9b4vs2lp692jf/QLVP.rar 1. Tạo cơ sử dư liệu Bạn tạo một project và đặt tên cho project là De4 - Tạo cơ sở dữ liệu: Cơ sở dữ liệu và form thiết kế theo bài tập sau: + Tạo trên visual basic: click chuột phải vào tên project chọn add -> new folder và đặt tên cơ thư mục là CSDL
  • 2.
    ANHMATTROI – TIN5A 2 Tiếptheo bạn lại click chuột phải vào thư mực CSDL chọn add -> new item. Chọn SQL Database trong visual studio 2012 là Service-based Database và đặt tên cho csdl là QLVP.mdf
  • 3.
    ANHMATTROI – TIN5A 3 Đợimột lúc hình sau hiện ra: các bạn click như trong hình
  • 4.
    ANHMATTROI – TIN5A 4 +Tiếp theo: bạn click chuột phải vào database QLVP.mdf chọn Open hình sau xuất hiện
  • 5.
    ANHMATTROI – TIN5A 5 Bạnclick chuột phải vào Tables chọn Add New Table và khai báo các cột như sau: xong bạn lưu lại với tên bảng là NhanVien. Bạn lại click tiếp chuột phải vào Tables chọn Add New Table và khai báo các cột: rồi lưu lại với tên bảng là VP + Chèn dữ liệu vào bảng: bạn click chuột phải vào bảng NhanVien chọn Show Table Data
  • 6.
    ANHMATTROI – TIN5A 6 Bạncó thể điền dữ liệu cho bảng nhân viên như hình sau: bạn nên điền hết hàng trước Còn bảng VP bạn làm tượng tự như trên + Tạo một lớp KetNoi.vb trong project: bạn click chuột phải vào ten project chọn Add -> New Folder và đăt tên cho thư mục này là Ket noi
  • 7.
    ANHMATTROI – TIN5A 7 Tiếptheo bạn click chuột phải vào thư mục Ket noi chọn Add -> New Item và bạn chọn như trong hình sau:
  • 8.
    ANHMATTROI – TIN5A 8 +Nội dung file KetNoi.vb: Imports System.Data.SqlClient Imports System.Data Public Class KetNoi Private cn As SqlConnection „ hàm khởi tạo Public Sub New() cn = New SqlConnection() End Sub Public Function KetNoi() As Boolean Try cn.Open() Return True Catch ex As Exception Return False End Try End Function Public Sub NgatKN() If cn.State = ConnectionState.Open Then cn.Close()
  • 9.
    ANHMATTROI – TIN5A 9 EndIf End Sub Public Function TinhTrang() As Boolean If cn.State = ConnectionState.Open Then Return True End If Return False End Function Public Property ChuoiKN() As String Get Return cn.ConnectionString End Get Set(ByVal value As String) cn.ConnectionString = value End Set End Property Public Function LayDL(ByVal bang As String) As DataTable Dim dtb As New DataTable() Dim adt As SqlDataAdapter Dim dts As New DataSet() adt = New SqlDataAdapter("select * from " + bang, cn) Try adt.Fill(dts) dtb = dts.Tables(0) Catch loi As Exception MessageBox.Show(loi.ToString(), "Error", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try Return dtb End Function Public Sub CapNhat(ByVal str As String) Dim cm As SqlCommand Try cm = New SqlCommand(str, cn) cm.ExecuteNonQuery() Catch loi As Exception MessageBox.Show(loi.ToString(), "Error", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub End Class 2. Thiết kế form - Tạo thư mục chứa form: bạn click chuột phải vào tên project chọn Add -> New folder và đặt tên cho thư mục là Giao dien. Tiếp theo bạn click chuột phải vào Form1.vb – được
  • 10.
    ANHMATTROI – TIN5A 10 tạora lúc tạo project chọn Cut và Peste vào thư mục Giao dien, xong bạn đổi tên file Form1.vb thành Main.vb - Các file trong project De4: - Tiếp theo: bạn kéo các đối tượng sau vào from: 1 MenuStrip, 2 Button, 1 TabControl, … như trong hai hinh sau:
  • 11.
  • 12.
    ANHMATTROI – TIN5A 12 -Đổi tên biến + Các button:
  • 13.
    ANHMATTROI – TIN5A 13 ButtonTên biến Button Tên biến Xem và cập nhật btXem First btFirst Tìm kiếm btTimKiem << btTruoc Hiển thị btHienThi >> btSau Thêm btThem Last btLast Sửa btSua Tìm kiếm (button ở trong tabpage tìm kiếm) btTK Xóa btXoa + Các Label: Label Tên biến Label Tên biến Mã NV lbMaNV Ngày vi phạm lbNgayVP Họ tên lbHoten Xư lí lbXuLi Ngày Sinh lbNgaySinh Lương lbLuong Giới tinh lbGioiTinh Quê quán lbQueQuan STT lbSTT Vi phạm lbViPham + Các DataGridView: DataGridView ở tab xem và cập nhật đổi tên biến thành dtgrvXem, DataGridView ở tab tìm kiếm đổi thành dtgrvTK + Các TextBox: đổi tên biến các TextBox
  • 14.
    ANHMATTROI – TIN5A 14 Cònmột TextBox trong tab tìm kiếm bạn đổi thanh tbTK + TabControl đổi thành tctr, TabPage Xem và cập nhật đổi thành tpXem, TabPage Tìm kiếm đổi thành tpTimKiem + ComboBox đổi thành cbXem và điền danh sách bảng vào ComboBox như hình sau:
  • 15.
    ANHMATTROI – TIN5A 15 +Đổi MenuStrip thành mnstr, Form xem và cập nhật đổi thành mnCapNhat, Form tìm kiếm đổi thành mnTimKiem, Thoát đổi thanh mnThoat - Click chuột phải vào file Main.vb chọn View code rồi xóa hết code trong tab hiện ra rồi copy đoạn code sau vào: Public Class Main Private TP As List(Of TabPage) Private ibutton As Integer Private dtbNV As DataTable Private dtbVP As DataTable Private kn As KetNoi Private ikn As Integer Private icn As Integer Private Sub Bai2_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load kn = New KetNoi() kn.ChuoiKN = " " If Not kn.KetNoi() Then MessageBox.Show("Lỗi kết nối", "Lỗi", MessageBoxButtons.OK, _ MessageBoxIcon.Error) kn = Nothing Return End If TP = New List(Of TabPage) TP.Add(tpXem) TP.Add(tpTimKiem) tctr.TabPages.RemoveAt(1) ibutton = 0 dtbNV = New DataTable() dtbVP = New DataTable() ikn = 0
  • 16.
    ANHMATTROI – TIN5A 16 icn= 0 End Sub Private Sub Main_FormClosing(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing If kn.TinhTrang() Then kn.NgatKN() End If End Sub Private Sub btXem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btXem.Click, mnCapNhat.Click If ibutton <> 0 Then tctr.TabPages.Remove(TP(ibutton)) tctr.TabPages.Add(tpXem) ibutton = 0 End If End Sub Private Sub btTimKiem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btTimKiem.Click, mnTimKiem.Click If ibutton <> 1 Then tctr.TabPages.Remove(TP(ibutton)) tctr.TabPages.Add(tpTimKiem) ibutton = 1 End If End Sub Private Sub cbXem_SelectedIndexChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cbXem.SelectedIndexChanged, btHienThi.Click If kn.TinhTrang() Then If cbXem.SelectedIndex = 0 Then icn = 0 lbMaNV.Enabled = True tbMaNV.Enabled = True tbMaNV.Text = "" tbMaNV.Focus() lbHoTen.Enabled = True tbHoTen.Text = "" tbHoTen.Enabled = True lbNgaySinh.Enabled = True tbNgaySinh.Enabled = True tbNgaySinh.Text = "" lbGioiTinh.Enabled = True tbGioiTinh.Enabled = True tbGioiTinh.Text = "" lbQueQuan.Enabled = True tbQueQuan.Enabled = True tbQueQuan.Text = "" lbLuong.Enabled = True tbLuong.Enabled = True
  • 17.
    ANHMATTROI – TIN5A 17 tbLuong.Text= "" lbSTT.Enabled = False tbSTT.Enabled = False tbSTT.Text = "" lbViPham.Enabled = False tbViPham.Enabled = False tbViPham.Text = "" lbNgayVP.Enabled = False tbNgayVP.Enabled = False tbNgayVP.Text = "" lbXuLi.Enabled = False tbXuLi.Enabled = False tbXuLi.Text = "" dtbNV = kn.LayDL("NhanVien") dtgrvXem.DataSource = dtbNV HienDLLenTextBox() ElseIf cbXem.SelectedIndex = 1 Then icn = 0 lbMaNV.Enabled = True tbMaNV.Enabled = True tbMaNV.Text = "" 'tbMaNV.Focus() lbHoTen.Enabled = False tbHoTen.Text = "" tbHoTen.Enabled = False lbNgaySinh.Enabled = False tbNgaySinh.Enabled = False tbNgaySinh.Text = "" lbGioiTinh.Enabled = False tbGioiTinh.Enabled = False tbGioiTinh.Text = "" lbQueQuan.Enabled = False tbQueQuan.Enabled = False tbQueQuan.Text = "" lbLuong.Enabled = False tbLuong.Enabled = False tbLuong.Text = "" lbSTT.Enabled = False tbSTT.Enabled = False tbSTT.Text = "" lbViPham.Enabled = True tbViPham.Enabled = True tbViPham.Text = "" tbViPham.Focus() lbNgayVP.Enabled = True tbNgayVP.Enabled = True tbNgayVP.Text = "" lbXuLi.Enabled = True tbXuLi.Enabled = True tbXuLi.Text = "" dtbVP = kn.LayDL("VP")
  • 18.
    ANHMATTROI – TIN5A 18 dtgrvXem.DataSource= dtbVP HienDLLenTextBox() End If Else MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _ MessageBoxButtons.OK, MessageBoxIcon.Warning) End If End Sub Private Sub btTK_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btTK.Click If kn.TinhTrang() Then Dim adt As SqlClient.SqlDataAdapter Dim dts As New DataSet() Try adt = New SqlClient.SqlDataAdapter("select * from NhanVien where MaNV = " _ + tbTK.Text, kn.KN()) adt.Fill(dts) dtbNV = dts.Tables(0) dtgrvTK.DataSource = dtbNV Catch ex As Exception End Try Else MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _ MessageBoxButtons.OK, MessageBoxIcon.Warning) End If End Sub Private Sub btXoa_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btXoa.Click If kn.TinhTrang() Then If cbXem.SelectedIndex = 0 Then If dtgrvXem.RowCount > 1 Then kn.CapNhat("delete NhanVien where MaNV = '" _ + dtgrvXem.Item(0, icn).Value + "'") icn = icn - 1 If icn < 0 Then icn = 0 End If dtbNV = kn.LayDL("NhanVien") dtgrvXem.DataSource = dtbNV Try HienDLLenTextBox() dtgrvXem.Rows(0).Selected = False dtgrvXem.Rows(icn).Selected = True Catch loi As Exception End Try End If ElseIf cbXem.SelectedIndex = 1 Then If dtgrvXem.RowCount > 1 Then
  • 19.
    ANHMATTROI – TIN5A 19 kn.CapNhat("deleteVP where STT = " _ + dtgrvXem.Item(0, icn).Value.ToString()) icn = icn - 1 If icn < 0 Then icn = 0 End If kn.CapNhat("declare @i int set @i = 0 " + _ "update VP set STT = @i, @i = @i + 1") dtbVP = kn.LayDL("VP") dtgrvXem.DataSource = dtbVP Try HienDLLenTextBox() dtgrvXem.Rows(0).Selected = False dtgrvXem.Rows(icn).Selected = True Catch loi As Exception End Try End If End If Else MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _ MessageBoxButtons.OK, MessageBoxIcon.Warning) End If End Sub Private Sub btThem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btThem.Click If kn.TinhTrang() Then If cbXem.SelectedIndex = 0 Then Dim chuoi As String = "insert into NhanVien values('" + _ tbMaNV.Text + "',N'" + tbHoTen.Text + "','" + _ tbNgaySinh.Text + "',N'" + _ tbGioiTinh.Text + "',N'" + tbQueQuan.Text + "'," + _ tbLuong.Text + ")" kn.CapNhat(chuoi) dtbNV = kn.LayDL("NhanVien") dtgrvXem.DataSource = dtbNV HienDLLenTextBox() Try dtgrvXem.Rows(0).Selected = False icn = dtgrvXem.RowCount - 2 dtgrvXem.Rows(icn).Selected = True Catch loi As Exception End Try ElseIf cbXem.SelectedIndex = 1 Then Dim chuoi As String = "insert into VP values(1, N'" + _ tbViPham.Text + "','" + tbNgayVP.Text + "',N'" + _ tbXuLi.Text + "','" + tbMaNV.Text + "')" kn.CapNhat(chuoi) kn.CapNhat("declare @i int set @i = 0 " + _ "update VP set STT = @i, @i = @i + 1") dtbVP = kn.LayDL("VP")
  • 20.
    ANHMATTROI – TIN5A 20 dtgrvXem.DataSource= dtbVP HienDLLenTextBox() Try dtgrvXem.Rows(0).Selected = False icn = dtgrvXem.RowCount - 2 dtgrvXem.Rows(icn).Selected = True Catch loi As Exception End Try End If Else MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _ MessageBoxButtons.OK, MessageBoxIcon.Warning) End If End Sub Private Sub btFirst_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btFirst.Click If kn.TinhTrang() Then If dtgrvXem.RowCount > 1 Then dtgrvXem.Rows(icn).Selected = False dtgrvXem.Rows(0).Selected = True icn = 0 HienDLLenTextBox() End If End If End Sub Private Sub btLast_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btLast.Click If kn.TinhTrang() Then If dtgrvXem.RowCount > 1 Then dtgrvXem.Rows(icn).Selected = False icn = dtgrvXem.RowCount - 2 dtgrvXem.Rows(icn).Selected = True HienDLLenTextBox() End If End If End Sub Private Sub btTruoc_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btTruoc.Click If dtgrvXem.RowCount > 1 Then dtgrvXem.Rows(icn).Selected = False icn = icn - 1 If icn < 0 Then icn = dtgrvXem.RowCount - 2 End If dtgrvXem.Rows(icn).Selected = True HienDLLenTextBox() End If End Sub
  • 21.
    ANHMATTROI – TIN5A 21 PrivateSub btSau_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btSau.Click If dtgrvXem.RowCount > 1 Then dtgrvXem.Rows(icn).Selected = False icn = icn + 1 If icn > dtgrvXem.RowCount - 2 Then icn = 0 End If dtgrvXem.Rows(icn).Selected = True HienDLLenTextBox() End If End Sub Private Sub dtgrvXem_CellClick(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dtgrvXem.CellClick icn = e.RowIndex If icn < 0 Then icn = 0 Return End If If icn = dtgrvXem.RowCount - 1 Then dtgrvXem.Rows(icn).Selected = False Return End If HienDLLenTextBox() End Sub Public Sub HienDLLenTextBox() If cbXem.SelectedIndex = 0 Then If dtgrvXem.RowCount > 1 Then If icn = -1 Or icn = dtgrvXem.RowCount - 1 Then Return End If Try tbMaNV.Text = dtgrvXem.Item(0, icn).Value tbHoTen.Text = dtgrvXem.Item(1, icn).Value tbNgaySinh.Text = dtgrvXem.Item(2, icn).Value tbGioiTinh.Text = dtgrvXem.Item(3, icn).Value tbQueQuan.Text = dtgrvXem.Item(4, icn).Value tbLuong.Text = dtgrvXem.Item(5, icn).Value Catch loi As Exception End Try End If ElseIf cbXem.SelectedIndex = 1 Then If dtgrvXem.RowCount > 1 Then If icn = -1 Or icn = dtgrvXem.RowCount - 1 Then Return End If Try
  • 22.
    ANHMATTROI – TIN5A 22 tbSTT.Text= dtgrvXem.Item(0, icn).Value tbViPham.Text = dtgrvXem.Item(1, icn).Value tbNgayVP.Text = dtgrvXem.Item(2, icn).Value tbXuLi.Text = dtgrvXem.Item(3, icn).Value tbMaNV.Text = dtgrvXem.Item(4, icn).Value Catch loi As Exception End Try End If End If End Sub Private Sub btSua_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btSua.Click If kn.TinhTrang() Then If cbXem.SelectedIndex = 0 Then Dim chuoi As String = "update NhanVien set MaNV = '" + _ tbMaNV.Text + "',HoTen = N'" + tbHoTen.Text + "',NgaySinh = '" + _ tbNgaySinh.Text + "',GioiTinh = N'" + tbGioiTinh.Text + _ "',QueQuan = N'" + tbQueQuan.Text + "',Luong = " _ + tbLuong.Text + " where MaNV = '" + tbMaNV.Text + "'" kn.CapNhat(chuoi) dtbNV = kn.LayDL("NhanVien") dtgrvXem.DataSource = dtbNV HienDLLenTextBox() dtgrvXem.Rows(0).Selected = False dtgrvXem.Rows(icn).Selected = True ElseIf cbXem.SelectedIndex = 1 Then Dim chuoi As String = "update VP set ViPham = N'" _ + tbViPham.Text + "',NgayVP = '" + tbNgayVP.Text _ + "',XuLi = N'" + tbXuLi.Text + "',MaNV = '" _ + tbMaNV.Text + "' where STT = " _ + dtgrvXem.Item(0, icn).Value.ToString() kn.CapNhat(chuoi) dtbVP = kn.LayDL("VP") dtgrvXem.DataSource = dtbVP HienDLLenTextBox() dtgrvXem.Rows(0).Selected = False dtgrvXem.Rows(icn).Selected = True End If Else MessageBox.Show("Bạn chưa kết nối cơ sở dữ liệu", "Thông báo", _ MessageBoxButtons.OK, MessageBoxIcon.Warning) End If End Sub Private Sub mnThoat_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles mnThoat.Click Me.Close() End Sub End Class
  • 23.
    ANHMATTROI – TIN5A 23 3.Kết nối CSDL a. CSDL tạo trên vb - Mở cơ sở dữ liệu copy chuỗi kết nối: click chuột phải vào QLVP.mdf chọn Open , Đợi một lúc hình sau hiện ra, rồi bạn lại click chuột phải vào QLVP.mdf chọn properties. Bạn copy toàn bộ chuỗi kết nối ở thẻ Connnection String: bạn nhớ copy đầy đủ trong thẻ này
  • 24.
    ANHMATTROI – TIN5A 24 Pestetoàn bộ chuỗi kết nối vào đây: trở lại đoạn code ở trên Nếu trong chuỗi kết nối có dấu nháy đôi nào bạn xóa hết đi  Bây giờ bạn có thể chạy chương trình của mình rui, chúc bạn thành công b. CSDL tạo trên SQL Server
  • 25.
    ANHMATTROI – TIN5A 25 -CSDL QLVP.mdf tạo trên sql server như sau: + Click vào Tool chọn Connect to Database
  • 26.
    ANHMATTROI – TIN5A 26 Hìnhsau hiện ra bạn lại chọn như trong hình:
  • 27.
    ANHMATTROI – TIN5A 27 Tiếptheo Bạn mở sql server của bạn lên gõ hết các chữ ở hình sau vào Server name hay bước 1 ở hình trên
  • 28.
    ANHMATTROI – TIN5A 28 Hìnhnày là sql server trên máy của mình còn trên máy của bạn là khác đấy Sau khi bước 5 hoàn thành click vào các dấu cộng để mở csdl và click chuột phải vào Xong bạn lại copy chuỗi kết nối và peste vào chỗ như mình đã trình bày ở trên c. Kết nối tới file database đã có sẵn
  • 29.
    ANHMATTROI – TIN5A 29 -Bạn click vào Tools chọn Connect to Database rồi chọn Tiếp theo
  • 30.
    ANHMATTROI – TIN5A 30 Tiếptheo Ở bước 1 bạn duyệt đến chỗ bạn lưu database QLVP.mdf rồi click OK.
  • 31.
    ANHMATTROI – TIN5A 31 xongrui bạn copy chuỗi kết nối d. Kết nối CSDL bằng tài khoản “sa” kn.ChuoiKN = “server = The_SunSQLEXPRESS; database = QLVP; uid = AMT; pwd = anhmattroi” + Server: thường là <tên máy tính>SQLEXPRESS …
  • 32.
    ANHMATTROI – TIN5A 32 +Database: là tên database + Uid: là tài khoản sa, tài khoản sa ở trên mình đổi tên thành AMT + Pwd: là mật khẩu