Bài giảng Cơ sở Lập trình - Chương 5: Lập trình cơ sở dữ liệu

pptx 46 trang huongle 2180
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở Lập trình - Chương 5: Lập trình cơ sở dữ liệu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptxbai_giang_co_so_lap_trinh_chuong_5_lap_trinh_co_so_du_lieu.pptx

Nội dung text: Bài giảng Cơ sở Lập trình - Chương 5: Lập trình cơ sở dữ liệu

  1. Chương 5 LẬP TRÌNH CƠ SỞ DỮ LIỆU
  2. Nội dung 1 Tổng quan về ADO.NET 2 Kết nối cơ sở dữ liệu bằng ADO.NET 3 Xây dựng ứng dụng minh hoạ 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 2/46
  3. 1. Tổng quan về ADO.NET ❑ ADO.NET và .NET framework ❑ ADO.NET là gì? ❑ Kiến trúc ADO.NET ❑ Các đối tượng trong ADO.NET 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 3/46
  4. ADO.NET và .NET framework Microsoft .NET Framework Web Services User Interface Data and XML ADO.NET XML Base Classes Common Language Runtime 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 4/46
  5. ADO.NET là gì? ADO.NET là tập hợp các lớp, interface, cấu trúc, kiểu dữ liệu định sẵn để quản lý việc truy xuất với dữ liệu Ứng dụng ADO.NET Managed Provider OLE DB Provider SQL Server Database Database SQL Managed Provider ADO Managed Provider using System.Data; using System.Data; using System.Data.SQLClient; using System.Data.OleDB; 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 5/46
  6. Kiến trúc ADO.NET 1. Connection 3. DataReader 5. Dataset 2. Command 4. DataAdapter 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 6/46
  7. 2. Kết nối CSDL bằng ADO.NET Connection Command DataReader DataAdaper Dataset 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 7/46
  8. 2.1. Connection Thiết lập và quản lý kết nối với CSDL Có 2 loại: ◼ SqlConnection ◼ OleDbConnection Thuộc tính quan trọng: ◼ ConnectionString Phương thức quan trọng: ◼ Open() ◼ Close() Chú ý: ◼ Luôn đóng Connection sau khi sử dụng 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 8/46
  9. 2.1.Connection (tiếp) Ví dụ: SqlConnection con; //Đối tượng để kết nối con = new SqlConnection(); //Khởi tạo con.ConnectionString = @"Data Source= .\SQLEXPRESS;AttachDbFilename=“ +Application.StartupPath+ @"\QLSV.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True"; con.Open(); //Mở kết nối Tạo ConnectString chính xác và nhanh nhất? 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 9/46
  10. 2.2. Command Thực hiện các thao tác với CSDL ◼ DDL, DML, gọi thủ tục, . Có 2 loại: ◼ SqlCommand ◼ OleDbCommand Thuộc tính quan trọng: ◼ Connection ◼ CommandText Phương thức quan trọng: ◼ ExecuteNonQuery() (thực hiện lệnh: INSERT, UPDATE, DELETE) ◼ ExecuteScalar() (thực hiện lệnh SELECT trả về 1 giá trị) ◼ ExecuteReader() (thực hiện lệnh SELECT trả về một hay nhiều bản ghi) 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 10/46
  11. 2.2.Command (tiếp) Ví dụ: SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = “UPDATE NhanVien set Luong = Luong + 100000 WHERE MaNV = 01”; cmd.ExecuteNonQuery(); con.Close(); 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 11/46
  12. 2.3. DataReader Có dạng con trỏ, dùng để handle dữ liệu trả về từ CSDL Đặc điểm: ◼ Con trỏ không thể lùi ◼ Thường handle dữ liệu trả về từ phương thức ExecuteReader() của Command Có 2 loại: ◼ SqlDataReader ◼ OleDbReader Khuyến cáo: ◼ Đối với các form chỉ SELECT dữ liệu, NÊN DÙNG DataReader để có tốc độ xử lý nhanh hơn 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 12/46
  13. 2.3. DataReader (tiếp) Ví dụ: SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = “SELECT MaSV, Hoten FROM tblSinhvien”; SqlDataReader rd = cmd.ExecuteReader(); while (rd.Read()) { txtMaSV.Text = rd[0].ToString(); txtHoten.Text= rd[1].ToString(); } con.Close(); 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 13/46
  14. 2.4. DataAdapter Là cầu nối giữa CSDL và Dataset Các thuộc tính quan trọng: ◼ SelectCommand ◼ UpdateCommand ◼ InsertCommand ◼ DeleteCommand Các phương thức quan trọng: ◼ Fill() ◼ Update() Có cơ chế tự động đóng Connection 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 14/46
  15. 2.4. DataAdapter (tiếp) Ví dụ - Hiển thị dữ liệu: string sql; sql = "SELECT * from tblSinhVien"; //Đối tượng DataAdapter SqlDataAdapter MyData = new SqlDataAdapter(sql,con); tblSinhvien = new DataTable(); //Khởi tạo bảng //Đổ dữ liệu từ DataAdapter vào bảng MyData.Fill(tblSinhvien); dataGridView.DataSource = tblSinhvien; 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 15/46
  16. 2.5. Dataset Là đối tượng lưu dữ liệu trả về từ CSDL Dataset DataAdapter DB Relations, Constraint Dataset Database 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 16/46
  17. 3. Xây dựng ứng dụng minh hoạ Bài toán Xây dựng ứng dụng quản lý sinh viên đơn giản ◼ Cho phép đọc dữ liệu từ csdl sinh viên ◼ Thực hiện các thao tác: Thêm, sửa, xoá ◼ Cơ sở dữ liệu: gồm bảng SINHVIEN(MaSV, Hoten, Ngaysinh, Khoa, Lop, Diachi) Các bước thực hiện ◼ Bước 1: Tạo cơ sở dữ liệu ◼ Bước 2: Thiết kế giao diện ◼ Bước 3: Thực hiện kết nối cơ sở dữ liệu ◼ Bước 4: Xử lý các sự kiện 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 17/46
  18. 3. Xây dựng ứng dụng minh hoạ Bước 1: Tạo cơ sở dữ liệu ◼ Tạo ứng dụng mới ◼ Tạo cơ sở dữ liệu Ở khung Solution Explorer, nháy phải chuột lên tên ứng dụng, chọn Add → New Item Chọn Data → Service-based Database (hoặc SQL Database trong Visual Studio Net 2005) Tạo bảng tblSinhvien 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 18/46
  19. 3. Xây dựng ứng dụng minh hoạ Bước 2: Thiết kế giao diện ◼ Các đối tượng: Textbox: ◼ txtMaSV ◼ txtHoten ◼ txtKhoa ◼ txtLop ◼ txtDiachi Maskedtextbox ◼ txtNgaysinh DataGridView ◼ DataGridView Buttons ◼ btnMoi, btnSua, btnXoa, btnLuu, btnHuy, btnThoat 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 19/46
  20. 3. Xây dựng ứng dụng minh hoạ Bước 3: Thực hiện kết nối cơ sở dữ liệu SqlConnection con; //Đối tượng để kết nối DataTable tblSinhvien; //Đối tượng lưu bảng sinh viên public void Connect() //Kết nối { con = new SqlConnection(); //Khởi tạo đối tượng con.ConnectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename="+Application.StartupPath+ @"\QLSV.mdf; Integrated Security=True;Connect Timeout=30; User Instance=True"; con.Open(); //Mở kết nối } public void Disconnect() //Ngắt kết nối { if (con.State == ConnectionState.Open) //nếu đang mở { con.Close(); //đóng con.Dispose(); //huỷ } } 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 20/46
  21. 3. Xây dựng ứng dụng minh hoạ Bước 4: Xử lý các sự kiện ◼ Hiển thị thông tin trong DataGridView public void LoadDataGridView() { string sql; sql = "SELECT * from tblSinhVien"; SqlDataAdapter MyData = new SqlDataAdapter(sql,con); //Đối tượng DataAdapter tblSinhvien = new DataTable(); //Khởi tạo bảng MyData.Fill(tblSinhvien); //Đổ dữ liệu từ DataAdapter vào bảng dataGridView.DataSource = tblSinhvien; } 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 21/46
  22. 3. Xây dựng ứng dụng minh hoạ Bước 4: Xử lý các sự kiện ◼ Thực hiện lệnh SQL public void RunSQL(string sql) //Thực hiện một câu lệnh SQL { SqlCommand cmd = new SqlCommand(); //Đối tượng để thực hiện lệnh cmd.CommandText = sql; cmd.Connection = con; try { cmd.ExecuteNonQuery(); //Thực hiện câu lệnh } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 22/46
  23. 3. Xây dựng ứng dụng minh hoạ Bước 4: Xử lý các sự kiện ◼ Nhấn nút Sửa private void btnSua_Click(object sender, EventArgs e) { string sql; sql = "UPDATE tblSinhVien SET Hoten=N'" + txtHoten.Text + "',Ngaysinh='" + txtNgaysinh.Text + "',Khoa=N'" + txtKhoa.Text + "',Lop=N'" + txtLop.Text + "',Diachi=N'" + txtDiachi.Text+ "' WHERE MaSV='" + txtMaSV.Text +"'"; RunSQL(sql); //thực hiện lệnh sql LoadDataGridView(); //hiển thị lại thông tin lên DataGridView } 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 23/46
  24. 3. Xây dựng ứng dụng minh hoạ Bước 4: Xử lý các sự kiện ◼ Nhấn nút Lưu private void btnLuu_Click(object sender, EventArgs e) { string sql; sql = "SELECT MaSV FROM tblSinhVien WHERE MaSV=N'" + txtMaSV.Text + "'"; SqlDataAdapter MyData = new SqlDataAdapter(sql, con); DataTable table = new DataTable(); MyData.Fill(table); if (table.Rows.Count > 0) { MessageBox.Show("Mã sinh viên này đã tồn tại"); return; } //Thực hiện chèn thêm mới sql = "INSERT INTO tblSinhVien VALUES (N'" + txtMaSV.Text + "',N'" + txtHoten.Text + "','" + txtNgaysinh.Text + "',N'" + txtKhoa.Text + "',N'" + txtLop.Text + "',N'" + txtDiachi.Text + "')"; RunSQL(sql); LoadDataGridView(); } 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 24/46
  25. 3. Xây dựng ứng dụng minh hoạ Bước 4: Xử lý các sự kiện ◼ Nhấn nút Xoá private void btnXoa_Click(object sender, EventArgs e) { string sql; if (MessageBox.Show("Bạn có muốn xóa không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { sql = "DELETE tblSinhVien WHERE MaSV=N'" + txtMaSV.Text + "'"; RunSQL(sql); LoadDataGridView(); ResetValue(); } } 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 25/46
  26. Bài tập về nhà Bài toán: ◼ Xây dựng chương trình quản lý cửa hàng Bán hàng lưu niệm Yêu cầu: ◼ Bước 1: Tạo cơ sở dữ liệu ◼ Bước 2: Thiết kế giao diện 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 26/46
  27. Bài tập về nhà Bước 1: Tạo cơ sở dữ liệu ◼ Tên tập tin: Quanlybanhang.mdf ◼ Các bảng Bảng tblChatlieu (chất liệu) Bảng tblKhach (khách) 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 27/46
  28. Bước 1: Tạo cơ sở dữ liệu ◼ Tên tập tin: Quanlybanhang.mdf ◼ Các bảng Bảng tblHang (hàng) 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 28/46
  29. Bước 1: Tạo cơ sở dữ liệu ◼ Tên tập tin: Quanlybanhang.mdf ◼ Các bảng Bảng tblNhanvien (nhân viên) 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 29/46
  30. Bước 1: Tạo cơ sở dữ liệu ◼ Tên tập tin: Quanlybanhang.mdf ◼ Các bảng Bảng tblHDBan (hoá đơn bán) 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 30/46
  31. Bước 1: Tạo cơ sở dữ liệu ◼ Tên tập tin: Quanlybanhang.mdf ◼ Các bảng Bảng tblChitietHDBan (chi tiết hoá đơn bán) 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 31/46
  32. Bước 1: Tạo cơ sở dữ liệu ◼ Quan hệ giữa các bảng (Relationship) 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 32/46
  33. Bước 2: Thiết kế giao diện ◼ Form chính Tên form: frmMain 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 33/46
  34. Bước 2: Thiết kế giao diện ◼ Form chính Tên form: frmMain Menu: các thuộc tính Name và Text: Name Text Name Text mnuFile Tập tin mnuTimkiem Tìm kiếm mnuThoat Thoát mnuFindHoadon Hoá đơn mnuDanhmuc Danh mục mnuFindHang Hàng mnuChatlieu Chất liệu mnuFindKhachhang Khách hàng mnuNhanvien Nhân viên mnuBaocao Báo cáo mnuKhachhang Khách hàng mnuBCHangton Hàng tồn mnuHanghoa Hàng hoá mnuBCDoanhthu Doanh thu mnuHoadon Hoá đơn mnuTrogiup Trợ giúp mnuHoadonban Hoá đơn bán mnuHientrogiup Trợ giúp mnuVainet Vài nét 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 34/46
  35. Bước 2: Thiết kế giao diện ◼ Form Danh mục chất liệu Tên form: frmDMChatlieu 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 35/46
  36. Bước 2: Thiết kế giao diện ◼ Form Danh mục chất liệu Các thành phần trên form Điều khiển Name Text TextBox txtMachatlieu txtTenchatlieu Button btnThem Thêm btnXoa Xoá btnSua Sửa btnLuu Lưu btnBoqua Bỏ qua btnDong Đóng DataGridView DataGridView 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 36/46
  37. Bước 2: Thiết kế giao diện ◼ Form Danh mục nhân viên Tên form: frmDMNhanvien 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 37/46
  38. Bước 2: Thiết kế giao diện ◼ Form Danh mục nhân viên Các thành phần trên form Điều khiển Name Text TextBox txtManhanvien txtTennhanvien txtDiachi Button btnThem, btnXoa, btnSua, btnLuu, btnBoqua, btnDong CheckBox chkGioitinh Nam MaskedTextBox mskDienthoai Mask: Phone Number mskNgaysinh Mask: Short Date DataGridView DataGridView 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 38/46
  39. Bước 2: Thiết kế giao diện ◼ Form Danh mục khách hàng Tên form: frmDMKhachhang 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 39/46
  40. ◼ Form Danh mục khách hàng Các thành phần trên form Điều khiển Name Text TextBox txtMakhach txtTenkhach txtDiachi Button btnThem, btnXoa, btnSua, btnLuu, btnBoqua, btnDong CheckBox chkGioitinh Nam MaskedTextBox mskDienthoai Mask: Phone Number DataGridView DataGridView 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 40/46
  41. ◼ Form Danh mục hàng hoá Tên form: frmDMHang 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 41/46
  42. ◼ Form Danh mục hàng hoá Các thành phần trên form Điều khiển Name TextBox txtMahang, txtTenhang, txtSoluong, txtDongianhap, txtDongiaban, txtAnh, txtGhichu ComboBox cboMachatlieu PictureBox picAnh DataGridView DataGridView Button btnThem, btnXoa, btnSua, btnLuu, btnBoqua, btnTimkiem, btnHienthi, btnDong, btnOpen. 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 42/46
  43. ◼ Form Hoá đơn bán hàng Tên form: frmHoadonBan 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 43/46
  44. ◼ Form Hoá đơn bán Các thành phần trên form Điều khiển Name Text Label lblBangchu Bằng chữ: TextBox txtMaHDBan, txtNgayban, txtTennhanvien,txtTenkhach, txtDiachi, txtDienthoai, txtTongtien, txtTenhang, txtDongiaban, txtSoluong, txtGiamgia, txtThanhtien. ComboBox cboManhanvien, cboMakhach, cboMahang, cboMaHDBan. DataGridView DataGridView Button btnNgay, btnThemmoi, btnLuu, btnXoa, btnInhoadon, btnDong, btnTimkiem 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 44/46
  45. ◼ Form Tìm kiếm hoá đơn Tên form: frmTimHDBan 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 45/46
  46. ◼ Form Tìm kiếm hoá đơn Các thành phần trên form Điều khiển Name TextBox txtMaHDBan, txtThang, txtNam, txtManhanvien, txtMakhach, txtTongtien. DataGridView DataGridView Button btnTimkiem, btnTimlai, btnDong 15/06/2021 Chương 5. Lập trình cơ sở dữ liệu 46/46