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ý.
Trang 1BÁ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Ể Ả Ơ Ở Ữ Ệ Ử Ồ Ệ Ử
- 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ớ
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ý.ả
cho bài toán qu n lýả
- Tìm ki m trong các b ng nhân ế ảviên, khách hàng, s n ph m theo ả ẩ
II) Bài toán qu n lý s d ng window from b ng ngôn ng c#ả ử ụ ằ ữ
1) Thi t l p c s d li uế ậ ơ ở ữ ệ
C s d li u cho c a hàng bán đ đi n t :ơ ở ữ ệ ử ồ ệ ử
Trang 2Phát bi u bài toán: ể
C a hàng kinh doanh đ đi n t chuyên bán các 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 và 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 vàử ồ ệ ử ồ ủ ử ả
được giao theo nhi u phòng ban.ề
C s d li u c a 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 c a hàng, hóa đ n thanh toán c a khách hàng, qu n lý toànả ả ẩ ủ ử ơ ủ ả
b phòng ban và chi ti t hóa đ n độ ế ơ ược nhân viên l p cho khách hàng.ậ
Xác đ nh ki u th c th ị ể ự ể
+ Ch c a hàng không ph i là ki u th c th vì đây là ki u th c th duy nh tủ ử ả ể ự ể ể ự ể ấ+ Nhân viên c a hàng ch thu c m t b ph n và m t b ph n có nhi u nhân ủ ỉ ộ ộ ộ ậ ộ ộ ậ ềviên
+ M i hóa đ n do 1 nhân viên l p, m t nhân viên có th l p nhi u hóa đ nỗ ơ ậ ộ ể ậ ể ơ+ M i hóa đ n đỗ ơ ượ ậc l p cho 1 khách hàng, m t khách hàng có th có nhi u ộ ể ềhóa đ nơ
+ Chi ti t hóa đ n có thông tin c a s n ph m trong 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ắ ể ự ể ạ
1 Nhanvien ( Manv, hoten, ngaysinh, GT, diachi)
2 Khachhang (makh, tenkh, diachi, dienthoai, email)
3 Sanpham ( masp, tensp, donvi, dongia)
4 Hoadon (mahd, ngaylap)
5 CT_hoadon(mahd, soluong, giamgia)
6 Phongban (maPB, tenPB)
Quy t c 2 : chuy n các kiên k t 1-1ắ ể ế
Quy t c 3: chuy n các liên k t 1-nắ ể ế
Nhân viên thu c phongban n – 1ộ
Trang 31.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)
Trang 4create table sanpham
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),
Trang 6private void btnthoat_Click(object sender, EventArgs e)
Trang 7Sanpham sanpham = new Sanpham();
Trang 9insert into khachhang
values (@makh,@tenkh,@diachi,@dienthoai,@email)
//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" ạ ư ậ ậ ủ ờ ạ ề ạ );
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
Trang 10{
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 d li u c n ki m tra xem có b trùng khóa chính:ữ ệ ầ ể ị
- D li u khi không trùng khóa chính:ữ ệ
- Nếu không nhập đủ thông tin:
Trang 11if (makh=="" || tenkh=="" || diachi=="" || dienthoai=="" || email =="") // neu tat ca cac truong deu rong
where makh=@makh;
Trang 12{
//khai bao bien cho cac textbox var makh = txtmakh.Text; var tenkh = txttenkh.Text; var diachi = txtdiachi.Text; var dienthoai = txtdienthoai.Text; var email = txtemail.Text; //neu ban khong nhap makh if(makh=="") {
MessageBox.Show( "B n Ch a nh p Mã Khách Hàng C n S a! M i B n Nh p" ạ ư ậ ầ ử ờ ạ ậ ); }
else {
if(tenkh=="" || diachi=="" || dienthoai=="" || email=="") {
MessageBox.Show("M i B n Nh p Thông Tin C n S a"ờ ạ ậ ầ ử ); }
else {
cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "update_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("S a Thành Công"ử ); Khachhang_Load(sender, e); }
catch {
MessageBox.Show("S a Th t B i"ử ấ ạ ); }
}
}
}
}
}
- S a theo mã khách hàng :ử
Trang 13- Đi u k n s a n u không có mã khách hàng ho c nh p thông tin:ề ệ ử ế ặ ậ
Ph n xóa theo mã khách hàngầ
- Vi t procedure xóa theo mã khách hàngế
create proc delete_khachhang
@makh varchar(9)
as
begin
delete from khachhang
where makh=@makh
end
- Mã ngu n xóa theo mã khách hàng:ồ
private void btnxoa_Click(object sender, EventArgs e)
Trang 14{
using(SqlCommand cmd=new SqlCommand("delete_khachhang",cnn)) {
//khai bao bien cho textbox khachhang var makh = txtmakh.Text; if (makh == "") {
MessageBox.Show( "B n ch a nh p mã khách hàng c n xóa!! M i B n Nh p" ạ ư ậ ầ ờ ạ ậ ); }
else {
cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "delete_khachhang"; cmd.Parameters.AddWithValue("@makh", txtmakh.Text); try {
cnn.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Xóa Thành Công"); Khachhang_Load(sender, e); }
catch {
MessageBox.Show("Xóa Th t B i"ấ ạ ); }
}
}
}
}
- VD xóa theo mã khách hàng
- Đi u ki n xóa mà không nh p mã khách hàng:ề ệ ậ
Trang 16// TODO: This line of code loads data into the
'qLbanhangdientuDataSet11.sanpham' table You can move, or remove it, as needed this.sanphamTableAdapter.Fill(this.qLbanhangdientuDataSet11.sanpham);
// TODO: This line of code loads data into the 'qLbanhangdientuDataSet.hoadon' table You can move, or remove it, as needed
- Thêm cho b ng chi ti t hóa đ nả ế ơ
private void btnthem_Click(object sender, EventArgs e)
Trang 17{
using(SqlConnection cnn=new SqlConnection(constr)) {
using(SqlCommand cmd= new SqlCommand("them_cthoadon",cnn)) {
//khai bao bien var soluong = txtsoluong.Text; var giamgia = txtgiamgia.Text; if (soluong == "" || giamgia == "") {
MessageBox.Show("B n ch a nh p thông tin c n Thêm!!M i nh p ạ ư ậ ầ ờ ậ l i"ạ ); }
else {
cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "them_cthoadon"; cmd.Parameters.AddWithValue("@mahd", cbxmahd.Text); cmd.Parameters.AddWithValue("@masp", cbxmasp.Text); cmd.Parameters.AddWithValue( "@soluong" , Int32 Parse(txtsoluong.Text)); cmd.Parameters.AddWithValue( "@giamgia" , Int32 Parse(txtgiamgia.Text)); try {
cnn.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Thêm thành công"); CT_hoadon_Load(sender, e); }
catch {
MessageBox.Show("Th t B i"ấ ạ ); }
}
}
}
}
- S a cho b ng chi ti t hóa đ nử ả ế ơ
Trang 18private void btnsua_Click(object sender, EventArgs e)
{
using(SqlConnection cnn=new SqlConnection(constr)) {
using(SqlCommand cmd =new SqlCommand("update_cthoadon",cnn)) {
//khai bao neu khong dien var soluong = txtsoluong.Text; var giamgia = txtgiamgia.Text; if (soluong == "" || giamgia == "") {
MessageBox.Show("B n ch a nh p thông tin c n s a!!M i nh p l i"ạ ư ậ ầ ử ờ ậ ạ ); }
else {
cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "update_cthoadon"; cmd.Parameters.AddWithValue("@mahd", cbxmahd.Text); cmd.Parameters.AddWithValue("@masp", cbxmasp.Text); cmd.Parameters.AddWithValue( "@soluong" , Int32 Parse(txtsoluong.Text)); cmd.Parameters.AddWithValue( "@giamgia" , Int32 Parse(txtgiamgia.Text)); try {
cnn.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("S a thành công"ử ); CT_hoadon_Load(sender, e); }
catch {
MessageBox.Show("Th t B i"ấ ạ ); }
}
}
}
}
- Xóa b ng chi ti t hóa đ nả ế ơ
Trang 19private void btnxoa_Click(object sender, EventArgs e)
X lý đi u ki n cho dataGridView1ử ề ệ
private void dataGridView1_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
cbxmahd.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString(); cbxmasp.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString(); txtsoluong.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString(); txtgiamgia.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString(); }
Trang 20select * from sanpham
where masp like '%'+@masp+'%' not tensp like '%'+@tensp+'%'end
tim kiem khach hang
create proc timkiem_khachhang
select * from khachhang
where makh like @makh or tenkh like '%'+@tenkh+'%'
end
- Vi t code ph n tìm ki m b ng c#ế ầ ế ằ
Trang 21private void Timkiem_Load(object sender, EventArgs e)
{
//comboBox1.Text = "S n ph m";//hien chu San Pham len dauả ẩ
using(SqlConnection cnn=new SqlConnection(constr))
var ten = txtten.Text;
//khai bao bien trong texbox
//neu khong nhap du 2 bien thi thong bao
if(ma=="" && ten=="")
Trang 22using(SqlCommand cmd=new SqlCommand("timkiem_sanpham",cnn)) {
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "timkiem_sanpham";
cmd.Parameters.AddWithValue("@masp", txtma.Text);
cmd.Parameters.AddWithValue("@tensp", txtten.Text);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable tb= new DataTable();
cmd.Parameters.AddWithValue("@makh", txtma.Text);
cmd.Parameters.AddWithValue("@tenkh", txtten.Text);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable tb=new DataTable();
cmd.Parameters.AddWithValue("@manv", txtma.Text);
cmd.Parameters.AddWithValue("@tennv", txtten.Text);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable tb=new DataTable();
Trang 23Vi t mã ngu n ph n quay l i và nút thoátế ồ ầ ạ
private void btnquaylai_Click( object sender, EventArgs e)
Trang 24- T o view báo cáo có tên là ạ
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
CrytalReport1 crt = new CrytalReport1();
SqlConnection cnn = new SqlConnection(@"Data
Trang 25- B n báo cáo:ả