BÁO CÁO BÀI TẬP LỚN MÔN LẬP TRÌNH HƯỚNG SỰ KIỆN ĐỂ TÀI: QUẢN LÝ CƠ SỞ DỮ LIỆU CỬA HÀNG BÁN ĐỒ ĐIỆN TỬ, Thiết kế cơ sở dữ liệu Tạo bảng Tạo các view và proceduce cho việc thêm, sửa, xóa , tìm kiếm… Viết trang chủ cho bài quản lý và kêt nối cơ sở dữ liệu window from. Tạo các bản window from như quản lý khách hàng, sản phẩm hóa đơn, CT_hóa đơn Viết câu lênh thêm, sửa, xóa cho bài quản lý.
BÁO CÁO BÀI TẬP LỚN MÔN LẬP TRÌNH HƯỚNG SỰ KIỆN ĐỂ TÀI: QUẢN LÝ CƠ SỞ DỮ LIỆU CỬA HÀNG BÁN ĐỒ ĐIỆN TỬ I) Thành viên nhóm - Phạm Văn Hoàng : Lớp 14A1 - Mai Quang Minh : Lớp 14A1 - Nguyễn Thùy Dương : Lớp 14A3 - Chu Thị Phương : Lớp 14A2 Công việc thực hiện: Phạm Văn Hoàng - Mai Quang Minh - Nguyễn Thùy Dương - Chu Thị Phương - Thiết kế sở liệu Tạo bảng Tạo view proceduce cho việc thêm, sửa, xóa , tìm kiếm… Viết trang chủ cho quản lý kêt nối sở liệu window from Tạo window from quản lý khách hàng, sản phẩm hóa đơn, CT_hóa đơn Viết câu lênh thêm, sửa, xóa cho quản lý Viết phần tìm kiếm ngẫu nhiên cho toán quản lý Tìm kiếm bảng nhân viên, khách hàng, sản phẩm theo mã tên Viết phần báo cáo cho toán quản lý Báo cáo theo thiết lập hóa đơn theo khách hàng sử dụng Crystal Report II) Bài toán quản lý sử dụng window from ngôn ngữ c# 1) Thiết lập sở liệu Cơ sở liệu cho cửa hàng bán đồ điện tử: Phát biểu toán: Cửa hàng kinh doanh đồ điện tử chuyên bán sản phẩm đồ điện t nh tủ l ạnh, máy giặt, tivi, quạt máy tính, điện thoại nhiều mặt hàng khác Cửa hàng bán đồ điện tử gồm có chủ cửa hàng, nhân viên qu ản lý bán hàng giao theo nhiều phòng ban Cơ sở liệu cửa hàng gồm có quản lý nhân viên, khách hàng đ ến mua hàng , quản lý sản phẩm cửa hàng, hóa đơn toán khách hàng, quản lý toàn phòng ban chi tiết hóa đơn nhân viên lập cho khách hàng Xác định kiểu thực thể + Chủ cửa hàng kiểu thực thể kiểu thực thể + Nhân viên hàng thuộc phận phận có nhiều nhân viên + Mỗi hóa đơn nhân viên lập, nhân viên lập nhiểu hóa đơn + Mỗi hóa đơn lập cho khách hàng, khách hàng có nhiều hóa đơn + Chi tiết hóa đơn có thông tin sản phẩm hóa đơn Nhanvien ( Manv, hoten, ngaysinh, GT, diachi) Khachhang (makh, tenkh, diachi, dienthoai, email) Sanpham ( masp, tensp, donvi, dongia) Hoadon (mahd, ngaylap) CT_hoadon(mahd, soluong, giamgia) Phongban (maPB, tenPB) Mô Hình Quan Hệ Quy tắc 1: chuyển liên thực thể mạnh Nhanvien ( Manv, hoten, ngaysinh, GT, diachi) Khachhang (makh, tenkh, diachi, dienthoai, email) Sanpham ( masp, tensp, donvi, dongia) Hoadon (mahd, ngaylap) CT_hoadon(mahd, soluong, giamgia) Phongban (maPB, tenPB) Quy tắc : chuyển kiên kết 1-1 Quy tắc 3: chuyển liên kết 1-n Nhân viên thuộc phongban n–1 1.1 Nhanvien((Manv, hoten, ngaysinh, GT, diachi, maPB) Nhân viên lập hóa đơn 1–n 4.1 Hoadon( Mahd, ngaylap, Manv) Khachhang có Hoadon 1- n 4.2 Hoadon (Mahd, ngaylap, Manv, MakH) Quy tắc 4: chuyển kiểu liên kết n – n 5.1 CT_Hoadon( Mahd, Masp, soluong, Giamgia) Tổng Kết: Nhanvien (Manv, hoten, ngaysinh, GT, diachi, maPB) Khachhang (makh, tenkh, diachi, dienthoai, email) Sanpham (Masp, tensp, donvi, dongia) Hoadon (Mahd, ngaylap, Manv, Makh) CT_Hoadon ( Mahd, Masp, soluong, Giamgia) Phongban (MaPB, tenPB) Tạo Bảng: create table phongban ( mapb varchar(9) primary key, tenpb nvarchar(30) ); create table nhanvien ( manv varchar(9) primary key, tennv nvarchar(30), ngaysinh smalldatetime, gioitinh nvarchar(3) check (gioitinh in('Nam',N'Nữ')), diachi nvarchar(30), mapb varchar(9) references phongban(mapb) ); create table khachhang ( makh varchar(9) primary key, tenkh nvarchar(30), diachi nvarchar(30), dienthoai varchar(12), email varchar(30) ); create table sanpham ( masp varchar(9) primary key, tensp nvarchar(30), donvi nvarchar(10), dongia int ); create table hoadon ( mahd varchar(9) primary key, ngaylap smalldatetime, manv varchar(9) references nhanvien(manv), makh varchar(9) references khachhang(makh), ); create table CT_hoadon ( mahd varchar(9) references hoadon(mahd), masp varchar(9) references sanpham(masp), soluong int, giamgia int, primary key(mahd,masp) ); Mô hình: 2) Tạo Window From lập trình c# Phần mềm sử dụng: Visual Studio, Sql Server Tạo phần trang chủ ( MainMenu ) -Phần trang chủ gồm có đề mục quản lý liệu, tìm ki ếm, báo cáo thoát tạo từ button -Mã nguồn Mainmenu: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Ql_banhangdientu { public partial class MainMenu : Form { public MainMenu() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { QLDL qldulieu = new QLDL(); qldulieu.Show(); } private void btnthoat_Click(object sender, EventArgs e) { DialogResult = MessageBox.Show("Bạn có muốn thoát không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (DialogResult == DialogResult.OK) { Application.Exit(); } } private void btntimkiem_Click(object sender, EventArgs e) { Timkiem timkiem = new Timkiem(); timkiem.Show(); } private void btnbaocao_Click(object sender, EventArgs e) { Baocao bc = new Baocao(); bc.Show(); } Tạo phần quản lý liệu Phần quản lý liệu ta click vào button quản lý liệu Mainmenu - Phần quẩn lý liệu gồm button khách hàng, sản phẩm, CT_hoa don, hóa đơn Mã nguồn quản lý liệu: public QLDL() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Sanpham sanpham = new Sanpham(); sanpham.Show(); } private void btnquaylai_Click(object sender, EventArgs e) { Close(); } private void btnthoat_Click(object sender, EventArgs e) { DialogResult = MessageBox.Show("Bạn có muốn thoát không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (DialogResult == DialogResult.OK) { Application.Exit(); } } private void button2_Click(object sender, EventArgs e) { Khachhang khachhang = new Khachhang(); khachhang.Show(); } private void btnhoadon_Click(object sender, EventArgs e) { Hoadon hoadon = new Hoadon(); hoadon.Show(); } - private void btnphongban_Click(object sender, EventArgs e) { CT_hoadon chitiethd = new CT_hoadon(); chitiethd.Show(); } Quản lý thêm, sửa, xóa bảng khách hàng Cơ sở liệu bảng khách hàng - Tạo bảng khách hàng: Thêm liệu bảng khách hàng: Mã nguồn thêm liệu bàng khách hàng: - Phần kiểm tra khóa chính: private int kiemtra() { string constr = @"Data Source=DESKTOP-VLH47GK\SQLEXPRESS;Initial Catalog=QLbanhangdientu;Integrated Security=True"; using(SqlConnection cnn=new SqlConnection(constr)) { using(SqlCommand cmd=new SqlCommand("select * from khachhang")) { cmd.CommandType=CommandType.Text; cnn.Open(); string mak; mak=txtmakh.Text; string sql="select * from khachhang makh="+mak; MessageBox.Show(sql); using(SqlDataAdapter da=new SqlDataAdapter(sql,cnn)) { DataTable tb = new DataTable(); if (tb.Rows.Count > 0) { MessageBox.Show("Trùng Khóa Chính! Không Thể Thêm!!"); return 1; } else return 0; } } } } - Phần procedure create proc them_khachhang ( @makh varchar(9), @tenkh nvarchar(30), @diachi nvarchar(30), @dienthoai varchar(12), @email varchar(30) ) as begin insert into khachhang values (@makh,@tenkh,@diachi,@dienthoai,@email) end - Phần thêm: private void btnthem_Click(object sender, EventArgs e) { string constr = @"Data Source=DESKTOP-VLH47GK\SQLEXPRESS;Initial Catalog=QLbanhangdientu;Integrated Security=True"; using(SqlConnection cnn=new SqlConnection(constr)) { using(SqlCommand cmd= new SqlCommand("them_khachhang",cnn)) { if(kiemtra()==1) { MessageBox.Show("Trùng Khóa Chính, Không Thể Thêm!!!"); } else { //khai bao gia tri texbox var makh = txtmakh.Text; var tenkh = txttenkh.Text; var diachi = txtdiachi.Text; var dienthoai = txtdienthoai.Text; var email = txtemail.Text; if(makh=="" || tenkh=="" || diachi=="" || dienthoai=="" || email =="") { MessageBox.Show("Bạn Chưa Cập Nhập Đủ Thông Tin!!!Mời Bạn Điền Lại"); } else { cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "them_khachhang"; cmd.Parameters.AddWithValue("@makh", txtmakh.Text); cmd.Parameters.AddWithValue("@tenkh", txttenkh.Text); cmd.Parameters.AddWithValue("@diachi", txtdiachi.Text); cmd.Parameters.AddWithValue("@dienthoai", txtdienthoai.Text); cmd.Parameters.AddWithValue("@email", txtemail.Text); try { cnn.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Thêm Thành Công"); Khachhang_Load(sender, e); } catch { MessageBox.Show("Thêm Thất Bại! Bị trùng khóa chính"); } } } } } } - Khi thêm liệu cần kiểm tra xem có bị trùng khóa chính: - Dữ liệu không trùng khóa chính: - Nếu không nhập đủ thông tin: - Tạo view báo cáo có tên create view kh_hoadon(mahd,tennv,makh,tenkh,ngaylap,tongtien) as select hoadon.mahd,nhanvien.tennv,khachhang.makh,khachhang.tenkh,hoadon.ngaylap,sum( soluong*dongia) from hoadon,nhanvien,khachhang,CT_hoadon,sanpham where hoadon.manv=nhanvien.manv and hoadon.makh=khachhang.makh and hoadon.mahd=CT_hoadon.mahd and CT_hoadon.masp = sanpham.masp group by hoadon.mahd,nhanvien.tennv,khachhang.makh,khachhang.tenkh,hoadon.ngaylap - Mã nguồn c# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using CrystalDecisions.CrystalReports.Engine; namespace Ql_banhangdientu { public partial class Baocao : Form { public Baocao() { InitializeComponent(); } private void Baocao_Load(object sender, EventArgs e) { CrytalReport1 crt = new CrytalReport1(); SqlConnection cnn = new SqlConnection(@"Data Source=DESKTOPVLH47GK\SQLEXPRESS;Initial Catalog=QLbanhangdientu;Integrated Security=True"); cnn.Open(); SqlDataAdapter da = new SqlDataAdapter("select * from kh_hoadon", cnn); DataSet set = new DataSet(); da.Fill(set); crystalReportViewer1.ReportSource = crt; crt.Refresh(); } } } - Bản báo cáo: ... thoát không?", "Thông báo" , MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (DialogResult == DialogResult.OK) { Application.Exit(); } } Báo cáo - Tạo view báo cáo có tên create view... hình: 2) Tạo Window From lập trình c# Phần mềm sử dụng: Visual Studio, Sql Server Tạo phần trang chủ ( MainMenu ) -Phần trang chủ gồm có đề mục quản lý liệu, tìm ki ếm, báo cáo thoát tạo từ button... nhân viên lập cho khách hàng Xác định kiểu thực thể + Chủ cửa hàng kiểu thực thể kiểu thực thể + Nhân viên hàng thuộc phận phận có nhiều nhân viên + Mỗi hóa đơn nhân viên lập, nhân viên lập nhiểu