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ạ
46 trang |
Chia sẻ: phuongt97 | Lượt xem: 458 | Lượt tải: 0
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