Cap nhat CSDL trong VB.NET

2,238 views
1,998 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,238
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
69
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cap nhat CSDL trong VB.NET

  1. 1. 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
  2. 2. 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
  3. 3. ANHMATTROI – TIN5A 3 Đợi một lúc hình sau hiện ra: các bạn click như trong hình
  4. 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. 5. 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
  6. 6. 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
  7. 7. 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:
  8. 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. 9. 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
  10. 10. 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:
  11. 11. ANHMATTROI – TIN5A 11
  12. 12. ANHMATTROI – TIN5A 12 - Đổi tên biến + Các button:
  13. 13. 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
  14. 14. 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:
  15. 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. 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. 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. 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. 19. 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")
  20. 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. 21. 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
  22. 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. 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. 24. 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
  25. 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. 26. ANHMATTROI – TIN5A 26 Hình sau hiện ra bạn lại chọn như trong hình:
  27. 27. 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
  28. 28. 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
  29. 29. ANHMATTROI – TIN5A 29 - Bạn click vào Tools chọn Connect to Database rồi chọn Tiếp theo
  30. 30. 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.
  31. 31. 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 …
  32. 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

×