Bài giảng Lập trình ngôn ngữ C# - Chương 5: Lập trình cơ sở dữ liệu
Chương 5: Lập trình cơ sở dữ liệuNội dung
Tổng quan về ADO.NET
Kết nối cơ sở dữ liệu bằng ADO.NET
Xây dựng ứng dụng minh hoạ
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình ngôn ngữ C# - Chương 5: Lập trình cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 5LẬP TRÌNH CƠ SỞ DỮ LIỆUNội dung13/08/2021Chương 5. Lập trình cơ sở dữ liệuTổng quan về ADO.NET1Kết nối cơ sở dữ liệu bằng ADO.NET2Xây dựng ứng dụng minh hoạ32/461. Tổng quan về ADO.NETADO.NET và .NET frameworkADO.NET là gì?Kiến trúc ADO.NETCác đối tượng trong ADO.NET13/08/2021Chương 5. Lập trình cơ sở dữ liệu3/46ADO.NET và .NET framework13/08/2021Chương 5. Lập trình cơ sở dữ liệuMicrosoft .NET FrameworkCommon Language RuntimeBase ClassesWeb ServicesUser InterfaceData and XMLADO.NETXML......4/46ADO.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ệu13/08/2021Chương 5. Lập trình cơ sở dữ liệuSQL Managed ProviderSQL ServerDatabaseADO.NET Managed ProviderADO Managed ProviderOLE DB ProviderDatabaseỨng dụngusing System.Data;using System.Data.SQLClient;using System.Data;using System.Data.OleDB;5/46Kiến trúc ADO.NET13/08/2021Chương 5. Lập trình cơ sở dữ liệuConnectionCommandDataReaderDataAdapterDataset6/462. Kết nối CSDL bằng ADO.NET ConnectionCommandDataReaderDataAdaperDataset13/08/2021Chương 5. Lập trình cơ sở dữ liệu7/462.1. ConnectionThiết lập và quản lý kết nối với CSDLCó 2 loại:SqlConnectionOleDbConnectionThuộc tính quan trọng:ConnectionStringPhương thức quan trọng:Open()Close()Chú ý: Luôn đóng Connection sau khi sử dụng13/08/2021Chương 5. Lập trình cơ sở dữ liệu8/462.1.Connection (tiếp)Ví dụ:SqlConnection con; //Đối tượng để kết nốicon = new SqlConnection(); //Khởi tạocon.ConnectionString = @"Data Source= .\SQLEXPRESS;AttachDbFilename=“ +Application.StartupPath+ @"\QLSV.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True";con.Open(); //Mở kết nối13/08/2021Chương 5. Lập trình cơ sở dữ liệuTạo ConnectString chính xác và nhanh nhất?9/462.2. CommandThực hiện các thao tác với CSDLDDL, DML, gọi thủ tục, .Có 2 loại:SqlCommandOleDbCommandThuộc tính quan trọng:ConnectionCommandTextPhươ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)13/08/2021Chương 5. Lập trình cơ sở dữ liệu10/462.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();13/08/2021Chương 5. Lập trình cơ sở dữ liệu11/462.3. DataReaderCó dạng con trỏ, dùng để handle dữ liệu trả về từ CSDLĐặc điểm:Con trỏ không thể lùiThường handle dữ liệu trả về từ phương thức ExecuteReader() của CommandCó 2 loại:SqlDataReaderOleDbReaderKhuyế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ơn13/08/2021Chương 5. Lập trình cơ sở dữ liệu12/462.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();13/08/2021Chương 5. Lập trình cơ sở dữ liệu13/462.4. DataAdapterLà cầu nối giữa CSDL và DatasetCác thuộc tính quan trọng:SelectCommandInsertCommandCác phương thức quan trọng:Fill()Update()Có cơ chế tự động đóng Connection13/08/2021Chương 5. Lập trình cơ sở dữ liệuUpdateCommandDeleteCommand14/462.4. DataAdapter (tiếp)Ví dụ - Hiển thị dữ liệu:string sql;sql = "SELECT * from tblSinhVien";//Đối tượng DataAdapterSqlDataAdapter MyData = new SqlDataAdapter(sql,con); tblSinhvien = new DataTable(); //Khởi tạo bảng//Đổ dữ liệu từ DataAdapter vào bảngMyData.Fill(tblSinhvien); dataGridView.DataSource = tblSinhvien;13/08/2021Chương 5. Lập trình cơ sở dữ liệu15/462.5. DatasetLà đối tượng lưu dữ liệu trả về từ CSDL13/08/2021Chương 5. Lập trình cơ sở dữ liệuDBDatasetDataAdapterRelations, ConstraintDatasetDatabase16/463. Xây dựng ứng dụng minh hoạBài toánXây dựng ứng dụng quản lý sinh viên đơn giảnCho phép đọc dữ liệu từ csdl sinh viênThự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ệnBước 1: Tạo cơ sở dữ liệuBước 2: Thiết kế giao diệnBước 3: Thực hiện kết nối cơ sở dữ liệuBước 4: Xử lý các sự kiện13/08/2021Chương 5. Lập trình cơ sở dữ liệu17/463. Xây dựng ứng dụng minh hoạBước 1: Tạo cơ sở dữ liệuTạo ứng dụng mớiTạ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 ItemChọn Data Service-based Database (hoặc SQL Database trong Visual Studio Net 2005)Tạo bảng tblSinhvien13/08/2021Chương 5. Lập trình cơ sở dữ liệu18/463. Xây dựng ứng dụng minh hoạBước 2: Thiết kế giao diệnCác đối tượng:Textbox: txtMaSVtxtHotentxtKhoatxtLoptxtDiachiMaskedtextboxtxtNgaysinhDataGridViewDataGridViewButtonsbtnMoi, btnSua, btnXoa, btnLuu, btnHuy, btnThoat13/08/2021Chương 5. Lập trình cơ sở dữ liệu19/463. Xây dựng ứng dụng minh hoạBước 3: Thực hiện kết nối cơ sở dữ liệuSqlConnection con; //Đối tượng để kết nốiDataTable tblSinhvien; //Đối tượng lưu bảng sinh viênpublic 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ỷ } }13/08/2021Chương 5. Lập trình cơ sở dữ liệu20/463. Xây dựng ứng dụng minh hoạBước 4: Xử lý các sự kiệnHiển thị thông tin trong DataGridViewpublic 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;}13/08/2021Chương 5. Lập trình cơ sở dữ liệu21/463. Xây dựng ứng dụng minh hoạBước 4: Xử lý các sự kiệnThực hiện lệnh SQLpublic 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()); } } 13/08/2021Chương 5. Lập trình cơ sở dữ liệu22/463. Xây dựng ứng dụng minh hoạBước 4: Xử lý các sự kiệnNhấn nút Sửaprivate 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 sqlLoadDataGridView(); //hiển thị lại thông tin lên DataGridView}13/08/2021Chương 5. Lập trình cơ sở dữ liệu23/463. Xây dựng ứng dụng minh hoạBước 4: Xử lý các sự kiệnNhấn nút Lưuprivate 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();}13/08/2021Chương 5. Lập trình cơ sở dữ liệu24/463. Xây dựng ứng dụng minh hoạBước 4: Xử lý các sự kiệnNhấ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(); }}13/08/2021Chương 5. Lập trình cơ sở dữ liệu25/46Bà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ệmYêu cầu:Bước 1: Tạo cơ sở dữ liệuBước 2: Thiết kế giao diện13/08/2021Chương 5. Lập trình cơ sở dữ liệu26/46Bài tập về nhàBước 1: Tạo cơ sở dữ liệuTên tập tin: Quanlybanhang.mdfCác bảngBảng tblChatlieu (chất liệu)Bảng tblKhach (khách)13/08/2021Chương 5. Lập trình cơ sở dữ liệu27/46Bước 1: Tạo cơ sở dữ liệuTên tập tin: Quanlybanhang.mdfCác bảngBảng tblHang (hàng)13/08/2021Chương 5. Lập trình cơ sở dữ liệu28/46Bước 1: Tạo cơ sở dữ liệuTên tập tin: Quanlybanhang.mdfCác bảngBảng tblNhanvien (nhân viên)13/08/2021Chương 5. Lập trình cơ sở dữ liệu29/46Bước 1: Tạo cơ sở dữ liệuTên tập tin: Quanlybanhang.mdfCác bảngBảng tblHDBan (hoá đơn bán)13/08/2021Chương 5. Lập trình cơ sở dữ liệu30/46Bước 1: Tạo cơ sở dữ liệuTên tập tin: Quanlybanhang.mdfCác bảngBảng tblChitietHDBan (chi tiết hoá đơn bán)13/08/2021Chương 5. Lập trình cơ sở dữ liệu31/46Bước 1: Tạo cơ sở dữ liệuQuan hệ giữa các bảng (Relationship)13/08/2021Chương 5. Lập trình cơ sở dữ liệu32/46Bước 2: Thiết kế giao diệnForm chínhTên form: frmMain13/08/2021Chương 5. Lập trình cơ sở dữ liệu33/46Bước 2: Thiết kế giao diệnForm chínhTên form: frmMainMenu: các thuộc tính Name và Text:13/08/2021Chương 5. Lập trình cơ sở dữ liệuNameTextNameTextmnuFilemnuThoatmnuDanhmucmnuChatlieumnuNhanvienmnuKhachhangmnuHanghoamnuHoadonmnuHoadonbanTập tin ThoátDanh mục Chất liệu Nhân viên Khách hàng Hàng hoáHoá đơn Hoá đơn bánmnuTimkiemmnuFindHoadonmnuFindHangmnuFindKhachhangmnuBaocaomnuBCHangtonmnuBCDoanhthumnuTrogiupmnuHientrogiupmnuVainetTìm kiếm Hoá đơn Hàng Khách hàngBáo cáo Hàng tồn Doanh thuTrợ giúp Trợ giúp Vài nét34/46Bước 2: Thiết kế giao diệnForm Danh mục chất liệuTên form: frmDMChatlieu13/08/2021Chương 5. Lập trình cơ sở dữ liệu35/46Bước 2: Thiết kế giao diệnForm Danh mục chất liệuCác thành phần trên form13/08/2021Chương 5. Lập trình cơ sở dữ liệuĐiều khiểnNameTextTextBoxtxtMachatlieu txtTenchatlieu Button btnThemThêmbtnXoaXoábtnSuaSửabtnLuuLưubtnBoquaBỏ quabtnDongĐóngDataGridViewDataGridView 36/46Bước 2: Thiết kế giao diệnForm Danh mục nhân viênTên form: frmDMNhanvien13/08/2021Chương 5. Lập trình cơ sở dữ liệu37/46Bước 2: Thiết kế giao diệnForm Danh mục nhân viênCác thành phần trên form13/08/2021Chương 5. Lập trình cơ sở dữ liệuĐiều khiểnNameTextTextBoxtxtManhanvien txtTennhanvien txtDiachi ButtonbtnThem, btnXoa, btnSua, btnLuu, btnBoqua, btnDongCheckBoxchkGioitinhNamMaskedTextBoxmskDienthoaiMask: Phone NumbermskNgaysinhMask: Short DateDataGridViewDataGridView 38/46Bước 2: Thiết kế giao diệnForm Danh mục khách hàngTên form: frmDMKhachhang13/08/2021Chương 5. Lập trình cơ sở dữ liệu39/46Form Danh mục khách hàngCác thành phần trên form13/08/2021Chương 5. Lập trình cơ sở dữ liệuĐiều khiểnNameTextTextBoxtxtMakhach txtTenkhach txtDiachi ButtonbtnThem, btnXoa, btnSua, btnLuu, btnBoqua, btnDongCheckBoxchkGioitinhNamMaskedTextBoxmskDienthoaiMask: Phone NumberDataGridViewDataGridView 40/46Form Danh mục hàng hoáTên form: frmDMHang13/08/2021Chương 5. Lập trình cơ sở dữ liệu41/46Form Danh mục hàng hoáCác thành phần trên form13/08/2021Chương 5. Lập trình cơ sở dữ liệuĐiều khiểnNameTextBoxtxtMahang, txtTenhang, txtSoluong, txtDongianhap, txtDongiaban, txtAnh, txtGhichuComboBoxcboMachatlieu PictureBoxpicAnh DataGridViewDataGridView ButtonbtnThem, btnXoa, btnSua, btnLuu, btnBoqua,btnTimkiem, btnHienthi, btnDong, btnOpen.42/46Form Hoá đơn bán hàngTên form: frmHoadonBan13/08/2021Chương 5. Lập trình cơ sở dữ liệu43/46Form Hoá đơn bánCác thành phần trên form13/08/2021Chương 5. Lập trình cơ sở dữ liệuĐiều khiểnNameTextLabellblBangchuBằng chữ:TextBoxtxtMaHDBan, txtNgayban, txtTennhanvien,txtTenkhach, txtDiachi, txtDienthoai, txtTongtien, txtTenhang, txtDongiaban, txtSoluong, txtGiamgia, txtThanhtien.ComboBoxcboManhanvien, cboMakhach, cboMahang, cboMaHDBan.DataGridViewDataGridViewButtonbtnNgay, btnThemmoi, btnLuu, btnXoa, btnInhoadon,btnDong, btnTimkiem44/46Form Tìm kiếm hoá đơnTên form: frmTimHDBan13/08/2021Chương 5. Lập trình cơ sở dữ liệu45/46Form Tìm kiếm hoá đơnCác thành phần trên form13/08/2021Chương 5. Lập trình cơ sở dữ liệuĐiều khiểnNameTextBoxtxtMaHDBan, txtThang, txtNam, txtManhanvien,txtMakhach, txtTongtien.DataGridViewDataGridViewButtonbtnTimkiem, btnTimlai, btnDong46/46
Các file đính kèm theo tài liệu này:
bai_giang_lap_trinh_ngon_ngu_c_chuong_5_lap_trinh_co_so_du_l.pptx



