Tải bản đầy đủ (.docx) (32 trang)

BÀI BÁO CÁO HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ SHOP TÌNH YÊU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.32 MB, 32 trang )

QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN

BÀI BÁO CÁO
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

ĐỀ TÀI:
QUẢN LÝ SHOP TÌNH YÊU
Giảng viên hướng dẫn: TS. NGUYỄN THÀNH SƠN
Danh sách sinh viên thực hiện
• Tạ Văn Ngọc
• Liên Thanh Hoàng

Thành Phố Hồ Chí Minh, tháng 12 năm 2015

Trang 1


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

MỤC LỤC
Mở đầu………………………………………………………………………
Giới thiệu hệ thống………………………………………………………….
Quy trình làm việc…………………………………………….
1. Làm việc với SQL Server………………………………………...


1.1.1 Tạo Cơ sở dữ liệu……………………………………….
1.1.2 Tạo Constraint
1.1.3 Tạo ràng buộc check
1.2
Store Procedure …………………………………............
1.2.1 Tạo Procedure lấy tất cả thông tin từ bảng……
1.2.2 Tạo Procedure thêm thông tin vào các bảng…..
1.2.3 Tạo Procedure sửa thông tin trong bảng……….
1.2.4 Tạo Procedure xóa các thông tin trong bảng…..
1.3
Tạo View
1.4 Tạo Function ……………………………………………..
1.5
Tạo Trigger…………………………..……………….......
1.6
Phân quyền……………………………………………….
2. Kết nối giữa SQL và C#...................................................................
3. Kết nối giữa 2 máy………………………………………………………
4. Kết quả và ứng dụng…………………………………………………
5. Hướng giải quyết 1 số vấn đề đăng nhập
Tài liệu tham khảo…………………………………………………………….
Mở đầu
Ngày nay với sự bùng nổ và phát triển mạnh mẽ của lĩnh vực Công nghệ thông tin, nó
đang dần trở thành một phần không thể thiếu của cuộc sống con người. Công nghệ
thông tin đang được phát triển và ứng dụng mạnh mẽ trong các lĩnh vực quản lý sản
xuất, quản lý kinh doanh, dịch vụ, quản lý xã hội cũng như tất cả các lĩnh vực khác và
quản lý bán hàng là một trong những lĩnh vực đó, thực tế đã cho thấy hiệu quả của tin
học khi áp dụng vào công tác quản lý, nó đã làm giảm bớt công tác bàn giấy đồng
thời góp phần đáng kể trong việc thống kê tránh những sai sót trong kinh doanh. Có
thể nói tin học đã trở thành một công cụ hữu hiệu đem lại hiệu quả trong công tác

quản lý và kinh doanh.
Đối với công việc Quản lý một shop là tương đối phức tạp bao gồm nhiều công việc
khác nhau với những nghiệp vụ khác nhau, điều đó là cho công việc quản lý trở lên
khó khăn hơn, cần nhiều nhân lực và thời gian để giải quyết công việc và không tránh
khởi những sai sót nhầm lẫn. Do đó cần có một phương án tốt hơn,tối ưu hơn để đem
lại hiệu quả trong công việc quản lý.
Trang 2


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

Trang 3


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

Giới thiệu về hệ thống:
- Hệ thống quản lý shop nhằm cung cấp các chức năng quản lý sách, nhà cung cấp,
nhân viên… Nhằm tạo sự thuận lợi cho việc quản lý nó. Thuận tiện cho việc thêm
xóa, sửa cũng như tìm kiếm, thống kê, xem các nhà sản xuất và quản lý nhân viên.
-

Sơ đồ quan hệ giữa các thực thể.

Chương 1: Quy trình làm việc
1. LÀM VIỆC VỚI SQL SEVER

1.1.1 TẠO DATABASE VÀ CÁC BẢNG
IF EXISTS(SELECT * FROM Sys.databases WHERE Name='SHOPTINHYEU')
DROP DATABASE SHOPTINHYEU
GO
CREATE DATABASE SHOPTINHYEU
GO
------------------- TẠO BẢNG NHÀ CUNG CẤP ------------------CREATE TABLE NHACUNGCAP (
MANCC NCHAR(20) PRIMARY KEY,
TENNCC NVARCHAR(100) NOT NULL,
DIACHI NVARCHAR(200),
SODIENTHOAI NCHAR(11),
EMAIL NVARCHAR(200)
)
GO
--------------------- TẠO BẢNG LOẠI SẢN PHẢM--------------------CREATE TABLE LOAISANPHAM (
MALOAISP NCHAR(20) PRIMARY KEY NOT NULL,
TENLOAISP NVARCHAR(100) NOT NULL,
DACDIEM NVARCHAR(100)
)
GO
--------------------- TẠO ĐƠN VỊ TÍNH--------------------CREATE TABLE DONVITINH (
MADVT NCHAR(10) PRIMARY KEY NOT NULL,
TENDVT NCHAR(20) NOT NULL,
)
GO
--------------------- TẠO BẢNG SẢN PHẨM --------------------CREATE TABLE SANPHAM (
MASP NCHAR(20) PRIMARY KEY NOT NULL,
TENSP NVARCHAR(100) NOT NULL,
MALOAISP NCHAR(20) NOT NULL FOREIGN KEY REFERENCES LOAISANPHAM(MALOAISP),
MADTV NCHAR(20) NOT NULL FOREIGN KEY REFERENCES DONVITINH(MADVT),

DONGIA INT NOT NULL,
SOLUONGTON INT NOT NULL,
VITRI NCHAR(15) NOT NULL,
HINH VARBINARY(MAX) NOT NULL,
GHICHU NVARCHAR(200),
)
GO

Trang 4


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

--------------------- TẠO BẢNG BỘ PHẬN --------------------CREATE TABLE BOPHAN (
MABOPHAN NCHAR(20) PRIMARY KEY,
TENBOPHAN NVARCHAR(100) NOT NULL
)
GO
--------------------- TẠO BẢNG NHÂN VIÊN --------------------CREATE TABLE NHANVIEN (
MANHANVIEN NCHAR(20) PRIMARY KEY NOT NULL,
TENNHANVIEN NVARCHAR(100) NOT NULL,
PHAI NCHAR(4) NOT NULL,
NGAYSINH DATE NOT NULL,
DIACHI NVARCHAR(200),
SODIENTHOAI NCHAR(11),
MABOPHAN NCHAR(20) NOT NULL FOREIGN KEY REFERENCES BOPHAN(MABOPHAN),
HINH VARBINARY(MAX) NOT NULL,
GHICHU NVARCHAR(200),

)
GO
--------------------- TẠO BẢNG TÀI KHOẢN --------------------CREATE TABLE TAIKHOAN (
MANHANVIEN NCHAR(20) NOT NULL,
TAIKHOAN NVARCHAR(50) NOT NULL,
MATKHAU NVARCHAR(50) NOT NULL,
PRIMARY KEY(MANHANVIEN,TAIKHOAN),
FOREIGN KEY(MANHANVIEN) REFERENCES NHANVIEN(MANHANVIEN),
)
GO
--------------------- TẠO BẢNG HÓA ĐƠN NHẬP --------------------CREATE TABLE HOADONNHAP(
MAHDN NCHAR(10) PRIMARY KEY,
MANCC NCHAR(20) NOT NULL FOREIGN KEY REFERENCES NHACUNGCAP(MANCC),
MANHANVIEN NCHAR(20) NOT NULL FOREIGN KEY REFERENCES NHANVIEN(MANHANVIEN),
TONGGIATRI FLOAT,
NGAYNHAP DATE NOT NULL
)
GO
--------------------- TẠO BẢNG CHI TIẾT HÓA ĐƠN NHẬP --------------------CREATE TABLE CHITIETHOADONNHAP (
MAHDN NCHAR(10),
MASP NCHAR(20),
SOLUONG INT NOT NULL,
GIANHAP INT NOT NULL ,
PRIMARY KEY(MAHDN,MASP),
FOREIGN KEY(MAHDN) REFERENCES HOADONNHAP(MAHDN),
FOREIGN KEY(MASP) REFERENCES SANPHAM(MASP)
)
GO
--------------------- TẠO BẢNG HÓA ĐƠN BÁN --------------------CREATE TABLE HOADONBAN(
MAHDB NCHAR(10) PRIMARY KEY,

TENKHACHHANG NVARCHAR(100),
DIACHI NVARCHAR(100),
MANHANVIEN NCHAR(20)FOREIGN KEY REFERENCES NHANVIEN(MANHANVIEN),
TONGTIEN FLOAT NOT NULL,
NGAYBAN DATE NOT NULL
)
GO
--------------------- TẠO BẢNG CHI TIẾT HÓA ĐƠN BÁN ---------------------

Trang 5


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

CREATE TABLE CHITIETHOADONBAN (
MAHDB NCHAR(10),
MASP NCHAR(20),
SOLUONG INT NOT NULL,
DONGIA INT NOT NULL,
PRIMARY KEY(MAHDB,MASP),
FOREIGN KEY(MAHDB) REFERENCES HOADONBAN(MAHDB),
FOREIGN KEY(MASP) REFERENCES SANPHAM(MASP)
)
GO
--------------------- TẠO BẢNG TÀI KHOẢN --------------------CREATE TABLE [dbo].[TK](
[USERNAME] [nchar](20) NOT NULL,
[PASSWORD] [nvarchar](50) NOT NULL,
ALTER TABLE [dbo].[TK] WITH CHECK ADD CONSTRAINT [FK_USER_NHANVIEN] FOREIGN

KEY([USERNAME])
REFERENCES [dbo].[NHANVIEN] ([MANHANVIEN])
GO
--------------------- TẠO BẢNG CHỨC NĂNG --------------------CREATE TABLE [dbo].[CHUCNANG](
[MACHUCNANG] [nchar](10) NOT NULL,
[TENCHUCNANG] [nchar](10) NOT NULL
GO
--------------------- TẠO BẢNG CHỨC NĂNG --------------------CREATE TABLE [dbo].[CHITIETCHUCNANG](
[MACHUCNANG] [nchar](10) NOT NULL,
[ID] [nchar](20) NOT NULL,
ALTER TABLE [dbo].[CHITIETCHUCNANG] WITH CHECK ADD CONSTRAINT
[FK_CHITIETCHUCNANG_CHUCNANG] FOREIGN KEY([MACHUCNANG])
REFERENCES [dbo].[CHUCNANG] ([MACHUCNANG])
GO
ALTER TABLE [dbo].[CHITIETCHUCNANG] WITH CHECK ADD CONSTRAINT
[FK_CHITIETCHUCNANG_USER] FOREIGN KEY([ID])
REFERENCES [dbo].[TK] ([USERNAME])
GO
1.1.2 TẠO CONSTRAINT
-------------- SỬA BẢNG – TÍNH DUY NHẤT ------------------ALTER TABLE BOPHAN ADD CONSTRAINT UQ_TENBOPHANLADUYNHAT
UNIQUE(TENBOPHAN)
GO
ALTER TABLE LOAISANPHAM ADD CONSTRAINT UQ_TENLOAISANPHAMLADUYNHAT
UNIQUE(TENLOAISP)
GO
ALTER TABLE NHACUNGCAP ADD CONSTRAINT UQ_TENNHACCLADUYNHAT
UNIQUE(TENNCC), UNIQUE(SODIENTHOAI),UNIQUE(DIACHI)
GO
ALTER TABLE NHANVIEN ADD CONSTRAINT UQ_THONGTINNHANVIEN
UNIQUE(TENNHANVIEN,PHAI,NGAYSINH), UNIQUE(SODIENTHOAI)

GO

Trang 6


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

1.1.3 TẠO RÀNG BUỘC CHECK
---------------- SỬA BẢNG - THÊM RÀNG BUỘC CHECK------------------ALTER TABLE SANPHAM ADD CONSTRAINT CK_Soluongton
CHECK(SOLUONGTON >=0)
GO
ALTER TABLE SANPHAM ADD CONSTRAINT CK_DonGia
CHECK(DONGIA >=0)
GO
ALTER TABLE CHITIETHOADONNHAP ADD CONSTRAINT CK_soluonghdn
CHECK(SOLUONG >0)
GO
ALTER TABLE CHITIETHOADONNHAP ADD CONSTRAINT CK_gianhap
CHECK(GIANHAP >0)
GO
ALTER TABLE HOADONNHAP ADD CONSTRAINT CK_tongiatri
CHECK(TONGGIATRI>0)
GO
ALTER TABLE CHITIETHOADONBAN ADD CONSTRAINT CK_soluonghdb
CHECK(SOLUONG >0)
GO
ALTER TABLE CHITIETHOADONBAN ADD CONSTRAINT CK_giaban
CHECK(DONGIA>0)

GO
ALTER TABLE HOADONBAN ADD CONSTRAINT CK_tongtien
CHECK(TONGTIEN >10000)
GO
ALTER TABLE NHACUNGCAP ADD CONSTRAINT CK_sdt1
CHECK ( SODIENTHOAI LIKE '0[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
GO
ALTER TABLE NHANVIEN ADD CONSTRAINT CK_sdt2
CHECK (SODIENTHOAI LIKE '0[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
GO

1.2 TẠO STORE PROCEDURE
1.2.1 Tạo Procedure lấy tất cả thông tin từ bảng
CREATE PROC spLayNhaCungCap
AS
BEGIN
SELECT * FROM NHACUNGCAP
END
GO
CREATE PROC spLayLoaiSanPham
AS
BEGIN
SELECT * FROM LOAISANPHAM
END
GO

Trang 7


QUẢN LÝ SHOP TÌNH YÊU


GVHD:TS. NGUYỄN THÀNH SƠN

CREATE PROC spLayDonViTinh
AS
BEGIN
SELECT * FROM DONVITINH
END
GO
CREATE PROC spLaySanPham
AS
BEGIN
SELECT * FROM SANPHAM
END
GO
CREATE PROC spLayBoPhan
AS
BEGIN
SELECT * FROM BOPHAN
END
GO
CREATE PROC spLayNhanVien
AS
BEGIN
SELECT * FROM NHANVIEN
END
GO
CREATE PROC spLayTaiKhoan
AS
BEGIN

SELECT * FROM TAIKHOAN
END
GO
CREATE PROC spLayHoaDonNhap
AS
BEGIN
SELECT * FROM HOADONNHAP
END
GO
CREATE PROC spLayCTHDN
AS
BEGIN
SELECT * FROM CHITIETHOADONNHAP
END
GO
CREATE PROC spLayHoaDonBan
AS
BEGIN
SELECT * FROM HOADONBAN
END
GO
CREATE PROC spLayCTHDB
AS
BEGIN
SELECT * FROM CHITIETHOADONBAN
END
GO

Trang 8



QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

Create proc [dbo].[sp_CapNhatSoLuongTon]
@maSP nchar(20),
@SoLuongTon int
as
update SanPham set SoLuongTon = @SoLuongTon
where MaSP = @maSP

1.2.2 Tạo Procedure thêm thông tin vào các bảng
CREATE PROC spThemNhaCungCap
@mancc nchar(20),
@tenncc nvarchar(100),
@diachi nvarchar(200),
@sdt nchar(11),
@email nvarchar(200)
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO NHACUNGCAP VALUES (@mancc,@tenncc,@diachi,@sdt,@email)
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)

END CATCH
GO
CREATE PROC spThemLoaiSP
@maloaisp nchar(20),
@tenloaisp nvarchar(100),
@dacdiem nvarchar(100)
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO LOAISANPHAM VALUES (@maloaisp,@tenloaisp,@dacdiem)
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spThemDVT
@madvt NCHAR(10),
@tendvt NCHAR(20),
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO DONVITINH VALUES (@madvt,@tendvt)
COMMIT
END TRY
BEGIN CATCH


Trang 9


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spThemSP
@masp nchar(20),
@tensp nvarchar(100),
@maloaisp nchar(20),
@madvt nchar(20),
@dongia int,
@soluongton int,
@hinh varbinary(max),
@ghichu nvarchar(200)
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO SANPHAM VALUES
(@masp,@tensp,@maloaisp,@madvt,@dongia,@soluongton,@hinh,@ghichu)
COMMIT
END TRY
BEGIN CATCH

ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spThemBoPhan
@mabp nchar(20),
@tenbp nvarchar(100),
@luong int
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO BOPHAN VALUES (@mabp,@tenbp,@luong)
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spThemNhanVien
@manv nchar(20),
@tennv nvarchar(100),
@phai nchar(4),
@ngaysinh date,
@diachi nvarchar(200),
@sdt nchar(11),

@mabp nchar(20),
@hinh varbinary(max),
@ghichu nvarchar(200)
AS

Trang 10


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

BEGIN TRAN
BEGIN TRY
INSERT INTO NHANVIEN VALUES
(@manv,@tennv,@phai,@ngaysinh,@diachi,@sdt,@mabp,@hinh,@ghichu)
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO

CREATE PROC spThemHoaDonNhap
@mahdn nchar(10),
@mancc nchar(20),
@manv nchar(20),

@tonggiatri float,
@ngaynhap date
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO HOADONNHAP(MAHDN,MANCC,MANHANVIEN,TONGGIATRI,NGAYNHAP) VALUES
(@mahdn,@mancc,@manv,@tonggiatri,@ngaynhap)
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spThemCTHDN
mahdn nchar(10),
@masp nchar(20),
@soluong int,
@gianhap int
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO CHITIETHOADONNHAP VALUES (@mahdn,@masp,@soluong,@gianhap)
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)

SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO

CREATE PROC spThemHoaDonBan
@mahdb nchar(10),
@tenkh nvarchar(100),
@diachi nvarchar(100),

Trang 11


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

@manv nchar(20),
@tongtien float,
@ngayban date
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO HOADONBAN(MAHDB,TENKHACHHANG,DIACHI,MANHANVIEN,TONGTIEN,NGAYBAN)
VALUES (@mahdb,@tenkh,@diachi,@manv,@tongtien,@ngayban)
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)

SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spThemCTHDB
@mahdb nchar(10),
@masp nchar(20),
@soluong int,
@dongia int
AS
BEGIN TRAN
BEGIN TRY
INSERT INTO CHITIETHOADONBAN VALUES (@mahdb,@masp,@soluong,@dongia)
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO

1.2.3 Tạo Procedure sửa thông tin trong bảng
CREATE PROC spSuaNhaCungCap
@mancc nchar(20),
@tenncc nvarchar(100),
@diachi nvarchar(200),
@sdt nchar(11),
@email nvarchar(200)

AS
BEGIN TRAN
BEGIN TRY
UPDATE NHACUNGCAP
SET TENNCC=@tenncc,DIACHI=@diachi,SODIENTHOAI=@sdt,EMAIL=@email
WHERE MANCC =@mancc
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH

Trang 12


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

GO
CREATE PROC spSuaLoaiSP
@maloaisp nchar(20),
@tenloaisp nvarchar(100),
@dacdiem nvarchar(100)
AS
BEGIN TRAN
BEGIN TRY

UPDATE LOAISANPHAM
SET TENLOAISP=@tenloaisp,DACDIEM=@dacdiem
WHERE MALOAISP=@maloaisp
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spSuaDVT
@madvt nchar(10),
@tendvt nchar(20)
AS
BEGIN TRAN
BEGIN TRY
UPDATE DONVITINH
SET TENDVT=@tendvt
WHERE MADVT=@madvt
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO


CREATE PROC spSuaSanPham
@masp nchar(20),
@tensp nvarchar(100),
@maloaisp nchar(20),
@madvt nchar(20),
@dongia int,
@soluongton int,
@hinh varbinary(max),
@ghichu nvarchar(200)
AS
BEGIN TRAN
BEGIN TRY
UPDATE SANPHAM
SET
TENSP=@tensp,MALOAISP=@maloaisp,MADVT=@madvt,DONGIA=@dongia,SOLUONGTON=@soluongton,HIN
H=@hinh,GHICHU=@ghichu
WHERE MASP=@masp
COMMIT
END TRY

Trang 13


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

BEGIN CATCH
ROLLBACK

DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spSuaBoPhan
@mabp nchar(20),
@tenbp nvarchar(100),
@luong int
AS
BEGIN TRAN
BEGIN TRY
UPDATE BOPHAN
SET TENBOPHAN=@tenbp,LUONG=@luong
WHERE MABOPHAN=@mabp
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spSuaNhanVien
@manv nchar(20),
@tennv nvarchar(100),
@phai nchar(4),
@ngaysinh date,
@diachi nvarchar(200),

@sdt nchar(11),
@mabp nchar(20),
@hinh varbinary(max),
@ghichu nvarchar(200)
AS
BEGIN TRAN
BEGIN TRY
UPDATE NHANVIEN
SET TENNHANVIEN=@tennv,PHAI=@phai,NGAYSINH=@ngaysinh,DIACHI=@diachi,SODIENTHOAI=@sdt,
MABOPHAN=@mabp,HINH=@hinh,GHICHU=@ghichu
WHERE MANHANVIEN=@manv
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spSuaTaiKhoan
@manv nchar(20),
@taikhoan nvarchar(50),
@matkhau nvarchar(50)
AS

Trang 14


QUẢN LÝ SHOP TÌNH YÊU


GVHD:TS. NGUYỄN THÀNH SƠN

BEGIN TRAN
BEGIN TRY
UPDATE TAIKHOAN
SET TAIKHOAN=@taikhoan, MATKHAU=@matkhau
WHERE MANHANVIEN=@manv
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO

1.2.4 Tạo Procedure xóa các thông tin trong bảng
CREATE PROC spXoaNhaCungCap
@mancc nchar(20)
AS
BEGIN TRAN
BEGIN TRY
DELETE FROM NHACUNGCAP
WHERE MANCC =@mancc
COMMIT
END TRY
BEGIN CATCH
ROLLBACK

DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spXoaLoaiSP
@maloaisp nchar(20)
AS
BEGIN TRAN
BEGIN TRY
DELETE FROM LOAISANPHAM
WHERE MALOAISP=@maloaisp
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spXoaDVT
@madvt nchar(20)
AS
BEGIN TRAN
BEGIN TRY
DELETE FROM DONVITINH

Trang 15



QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

WHERE MADVT=@madvt
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spXoaSanPham
@masp nchar(20)
AS
BEGIN TRAN
BEGIN TRY
DELETE FROM SANPHAM
WHERE MASP=@masp
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH

GO
CREATE PROC spXoaBoPhan
@mabp nchar(20)
AS
BEGIN TRAN
BEGIN TRY
DELETE FROM BOPHAN
WHERE MABOPHAN=@mabp
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO
CREATE PROC spXoaNhanVien
@manv nchar(20)
AS
BEGIN TRAN
BEGIN TRY
DELETE FROM NHANVIEN
WHERE MANHANVIEN=@manv
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()

RAISERROR(@ErrorMessage, 16, 1)

Trang 16


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

END CATCH
GO
CREATE PROC spXoaTaiKhoan
@manv nchar(20)
AS
BEGIN TRAN
BEGIN TRY
DELETE FROM TAIKHOAN
WHERE MANHANVIEN=@manv
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
DECLARE @ErrorMessage VARCHAR(2000)
SELECT @ErrorMessage = 'Lỗi: ' + ERROR_MESSAGE()
RAISERROR(@ErrorMessage, 16, 1)
END CATCH
GO

1.3


TẠO VIEW

CREATE VIEW [dbo].[TaiKhoan_All]
AS
SELECT dbo.TK.*, dbo.CHUCNANG.TENCHUCNANG
FROM
dbo.TK INNER JOIN
dbo.CHITIETCHUCNANG ON dbo.TK.USERNAME = dbo.CHITIETCHUCNANG.ID
INNER JOIN
dbo.CHUCNANG ON dbo.CHITIETCHUCNANG.MACHUCNANG =
dbo.CHUCNANG.MACHUCNANG
GO
-----------------------------------------------------------CREATE VIEW [dbo].[View_HDB]
AS
SELECT MAHDB, TENKHACHHANG, DIACHI, MANHANVIEN, TONGTIEN, NGAYBAN
FROM
dbo.HOADONBAN
GO

1.4

TẠO FUNCTION

ALTER function [dbo].[layTrangThai](@user nchar(20))
returns int
as
begin
declare @kq int
select @kq = TK.TRANGTHAI
from TK

where TK.USERNAME = @user
return @kq
end
-----------------------------------------------------------------Create function laySoLuongTon(@MaSP nchar(20))
returns int
as
begin
declare @kq int

Trang 17


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

select @kq = SanPham.SoLuongTon
from SanPham
where SanPham.MaSP = @MaSP
return @kq
end
-----------------------------------------------------------------Create function [dbo].[layMatKhau](@ID nchar(10))
returns nvarchar(50)
as
begin
declare @kq nvarchar(50)
select @kq = TK.PASSWORD
from TK
where TK.USERNAME = @ID
return @kq

end

1.5

TẠO TRIGGER

------------------- TẠO TRIGGER SỐ ĐIỆN THOẠI CỦA NHÀ CUNG CẤP KHÔNG ĐƯỢC TRÙNG
VỚI SỐ ĐIỆN THOẠI CỦA NHÂN VIÊN ------------------CREATE TRIGGER TG_SDTNCCKHONGTRUNGSDTNV
ON NHACUNGCAP
FOR INSERT,UPDATE
AS
BEGIN
DECLARE @SDT NCHAR(11)
SELECT @SDT =SODIENTHOAI FROM inserted
IF(@SDT IN (SELECT SODIENTHOAI FROM NHANVIEN))
BEGIN
RAISERROR('So dien thoai da ton tai trong quan he NHANVIEN',16,1);
ROLLBACK TRAN
RETURN
END
END
GO
------------------- TẠO TRIGGER SỐ ĐIỆN THOẠI CỦA NHÂN VIÊN KHÔNG ĐƯỢC TRÙNG VỚI
SỐ ĐIỆN THOẠI CỦA NHÀ CUNG CẤP ------------------CREATE TRIGGER TG_SDTNVKHONGTRUNGSDTNCC
ON NHANVIEN
FOR INSERT,UPDATE
AS
BEGIN
DECLARE @SDT NCHAR(11)
SELECT @SDT =SODIENTHOAI FROM inserted

IF(@SDT IN (SELECT SODIENTHOAI FROM NHACUNGCAP))
BEGIN
RAISERROR('So dien thoai da ton tai trong quan he NHANVIEN',16,1);
ROLLBACK TRAN
RETURN
END
END
GO

Trang 18


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

------------------- TẠO TRIGGER SỐ ĐỊA CHỈ CỦA NHÂN VIÊN KHÔNG ĐƯỢC TRÙNG VỚI ĐỊA
CHỈ CỦA NHÀ CUNG CẤP ---------------CREATE TRIGGER TG_DIACHINVKHONGTRUNGDIACHINCC
ON NHANVIEN
FOR INSERT,UPDATE
AS
BEGIN
DECLARE @Diachi NVARCHAR(200)
SELECT @Diachi =DIACHI FROM inserted
IF(@Diachi IN (SELECT DIACHI FROM NHACUNGCAP))
BEGIN
RAISERROR('Dia chi da ton tai trong quan he NHACUNGCAP',16,1);
ROLLBACK TRAN
RETURN
END

END
GO
------------------- TẠO TRIGGER ĐỊA CHỈ CỦA NHÀ CUNG CẤP KHÔNG ĐƯỢC TRÙNG VỚI ĐỊA
CHỈ CỦA NHÂN VIÊN ---------------CREATE TRIGGER TG_DIACHINCCKHONGTRUNGDIACHINV
ON NHACUNGCAP
FOR INSERT,UPDATE
AS
BEGIN
DECLARE @Diachi NVARCHAR(200)
SELECT @Diachi =DIACHI FROM inserted
IF(@Diachi IN (SELECT DIACHI FROM NHANVIEN))
BEGIN
RAISERROR('Dia chi da ton tai trong quan he NHANVIEN',16,1);
ROLLBACK TRAN
RETURN
END
END
GO

------------------- TẠO TRIGGER TỰ ĐỘNG CẬP NHẬT GIÁ SẢN PHẨM THEO MỨC GIÁ CỦA SẢN
PHẨM ĐÓ ĐƯỢC NHẬP VÀO ----------------

CREATE TRIGGER TG_GIASANPHAMTUCAPNHAT
ON CHITIETHOADONNHAP
FOR INSERT, UPDATE
AS
BEGIN
DECLARE @gia INT,@masp NCHAR(20)
SELECT @gia =GIANHAP,@masp=MASP FROM inserted
IF(@gia >= (SELECT DONGIA

FROM SANPHAM WHERE MASP=@masp))
BEGIN
UPDATE SANPHAM
SET DONGIA=@gia*1.5
WHERE MASP=@masp
END
END

Trang 19


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

GO
------------------- TẠO TRIGGER TỰ ĐỘNG CẬP NHẬT LẠI SỐ LƯỢNG KHI NHẬP HÀNG
---------------CREATE TRIGGER TG_CAPNHATSPKHINHAP
ON CHITIETHOADONNHAP
FOR INSERT,UPDATE
AS
BEGIN
DECLARE @masp NCHAR(20),@sl INT
SELECT @masp =MASP,@sl=SOLUONG FROM inserted
UPDATE SANPHAM
SET SOLUONGTON=SOLUONGTON+@sl
WHERE MASP=@masp
END
GO


1.6 PHÂN QUYỀN

Tạo role BanHang, ThuKho, QuanLy
Gán quyền cho role đó
Add các user vào
Gán quyền cho user
QuanLy có các quyền: Tất cả quyền.
ThuKho có các quyền: Trừ quyền Bán hàng, Quản lý nhân viên và Tra cứu hóa
đơn.
BanHang có các quyền: Không được sử dụng bảng Nhập hàng, Nhà cung cấp,
Tra cứu hóa đơn và các công việc Quản lý bộ phận và quản lý nhân viên.
use SHOPTINHYEU
go
--Phan quyen cho role BANHANG
--thao tac tren cac bang
grant
grant
grant
grant
grant
grant
grant
grant
grant

select on SANPHAM to BanHang
select on View_SanPham to BanHang
select, insert on HOADONBAN to BanHang
select, insert, update, delete on CHITIETHOADONBAN to BanHang
select, insert, update, delete on DONVITINH to BanHang

select, insert, update, delete on LOAISANPHAM to BanHang
select, update on TK to BanHang
select on NHANVIEN to BanHang
select on BOPHAN to BanHang

--Thuc thi cac store procedure
grant execute on spThemSP to BanHang
grant execute on spSuaSanPham to BanHang
grant execute on spXoaSanPham to BanHang
grant execute on spThemLoaiSP to BanHang
grant execute on spSuaLoaiSP to BanHang
grant execute on spXoaLoaiSP to BanHang
grant execute on spThemDVT to BanHang
grant execute on spSuaDVT to BanHang
grant execute on spXoaDVT to BanHang

Trang 20


QUẢN LÝ SHOP TÌNH YÊU
grant
grant
grant
grant
grant

execute
execute
execute
execute

execute

on
on
on
on
on

GVHD:TS. NGUYỄN THÀNH SƠN

spThemHoaDonBan to BanHang
spThemCTHDB to BanHang
spSuaCTHD to BanHang
sp_CapNhatSoLuongTon to BanHang
sp_layMatKhau to BanHang

-- Thuc thi cac function
grant execute on layMatKhau to BanHang
grant execute on laySoLuongTon to BanHang
-- Phan quyen cho Role QuanKho
-- Thao tac tren cac bang
grant select, insert, update, delete on NHACUNGCAP to QuanKho
grant select, insert, update, delete on SANPHAM to QuanKho
grant select, insert on HOADONNHAP to QuanKho
grant select, insert, update on CHITIETHOADONNHAP to QuanKho
grant select, insert, update, delete on DONVITINH to QuanKho
grant select, insert, update, delete on LOAISANPHAM to QuanKho
grant select, update on TK to QuanKho
grant select on NHANVIEN to QuanKho
grant select on BOPHAN to QuanKho

-- Thuc thi tren
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on
grant execute on

cac store
spThemNhaCungCap to QuanKho
spSuaNhaCungCap to QuanKho
spXoaNhaCungCap to QuanKho
spThemHoaDonNhap to QuanKho
spThemCTHDN to QuanKho
spSuaCTHDN to QuanKho
spThemLoaiSP to QuanKho
spSuaLoaiSP to QuanKho
spXoaLoaiSP to QuanKho
spThemDVT to QuanKho

spSuaDVT to QuanKho
spXoaDVT to QuanKho
spThemSP to QuanKho
spSuaSanPham to QuanKho
spXoaSanPham to QuanKho
sp_CapNhatSoLuongTon to QuanKho
sp_layMatKhau to QuanKho

--Thuc thi cac function
grant execute on laySoLuongTon to QuanKho
grant execute on layMatKhau to QuanKho
-- Phan quyen cho role QuanLy
-- Quyen thao
grant select,
grant select,
grant select,
grant select,
grant select,
grant select,
grant select,
grant select,
grant select,
grant select,
grant select,
grant select,

tac tren cac table
insert, update, delete on NHANVIEN to QuanLy with grant option
insert, update, delete on TK to QuanLy with grant option
insert, update, delete on CHUCNANG to QuanLy with grant option

insert, update, delete on CHITIETCHUCNANG to QuanLy with grant option
insert, update, delete on SANPHAM to QuanLy with grant option
insert on HOADONBAN to QuanLy with grant option
insert, update, delete on CHITIETHOADONBAN to QuanLy with grant option
insert, update, delete on DONVITINH to QuanLy with grant option
insert, update, delete on LOAISANPHAM to QuanLy with grant option
update on TK to QuanLy with grant option
insert, update, delete on NHACUNGCAP to QuanLy with grant option
insert on HOADONNHAP to QuanLy with grant option

Trang 21


QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

grant select, insert, update on CHITIETHOADONNHAP to QuanLy with grant option
grant select, insert, update on BOPHAN to QuanLy with grant option
-- Quyen thuc
grant execute
grant execute
grant execute
grant execute
grant execute
grant execute
grant execute
grant execute

thi cac store

on spThemNhanVien to QuanLy with grant option
on spSuaNhanVien to QuanLy with grant option
on spXoaNhanVien to QuanLy with grant option
on spThemBoPhan to QuanLy with grant option
on spSuaBoPhan to QuanLy with grant option
on spXoaBoPhan to QuanLy with grant option
on sp_themTaiKhoanNhanVien to QuanLy with grant option
on sp_ThemTaiKhoanLoginSQL to QuanLy with grant option

grant
grant
grant
grant
grant
grant
grant
grant
grant
grant
grant
grant
grant
grant
grant

on
on
on
on
on

on
on
on
on
on
on
on
on
on
on

execute
execute
execute
execute
execute
execute
execute
execute
execute
execute
execute
execute
execute
execute
execute

spThemNhaCungCap to QuanLy with grant option
spXoaNhaCungCap to QuanLy with grant option
spSuaNhacungCap to QuanLy with grant option

spThemCTHDN to QuanLy with grant option
spSuaCTHDN to QuanLy with grant option
spThemHoaDonNhap to QuanLy with grant option
spThemLoaiSP to QuanLy with grant option
spSuaLoaiSP to QuanLy with grant option
spXoaLoaiSP to QuanLy with grant option
spThemDVT to QuanLy with grant option
spSuaDVT to QuanLy with grant option
spXoaDVT to QuanLy with grant option
spThemSP to QuanLy with grant option
spSuaSanPham to QuanLy with grant option
spXoaSanPham to QuanLy with grant option

grant execute on sp_CapNhatSoLuongTon to QuanLy with grant option
grant
grant
grant
grant
grant

execute
execute
execute
execute
execute

on
on
on
on

on

spThemHoaDonBan to QuanLy with grant option
spThemCTHDB to QuanLy with grant option
spSuaCTHD to QuanLy with grant option
sp_CapNhatSoLuongTon to QuanLy with grant option
sp_layMatKhau to QuanLy with grant option

-- Quyen thuc thi cac function
grant execute on laySoLuongTon to QuanLy
grant execute on layMatKhau to QuanLy

2.

TẠO KẾT NỐI VƠI C#

public static string ConnStr = @"Data Source=(local);Initial
Catalog=SHOPTINHYEU;Integrated Security=True";
public static string CONSTR
{
set { ConnStr = value; }
}
public static void setDefaultConnStr()
{
ConnStr = @"Data Source=(local); Initial Catalog=SHOPTINHYEU;Integrated
Security=True";

Trang 22



QUẢN LÝ SHOP TÌNH YÊU

GVHD:TS. NGUYỄN THÀNH SƠN

}
SqlConnection conn = null;
SqlCommand comm = null;
SqlDataAdapter da = null;
public DAMain()
{
conn = new SqlConnection(ConnStr);
comm = conn.CreateCommand();
}
public DataSet ExecuteQueryDataSet(
string strSQL,
CommandType ct,
params SqlParameter[] param)
{
if (conn.State == ConnectionState.Open)
conn.Close();
conn.Open();
comm = conn.CreateCommand();
comm.CommandType = ct;
comm.CommandText = strSQL;
if (param != null)
{
foreach (SqlParameter p in param)
comm.Parameters.Add(p);
}
da = new SqlDataAdapter(comm);

DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
public bool MyExecuteNonQuery(
string strSQL,
CommandType ct,
ref string error,
params SqlParameter[] param)
{
bool f = false;
if (conn.State == ConnectionState.Open)
conn.Close();
conn.Open();
comm.Parameters.Clear();
comm.CommandText = strSQL;
comm.CommandType = ct;
foreach (SqlParameter p in param)
comm.Parameters.Add(p);
try
{

comm.ExecuteNonQuery();
f = true;

}
catch (SqlException ex)
{
error = ex.Message;


Trang 23


QUẢN LÝ SHOP TÌNH YÊU

}

GVHD:TS. NGUYỄN THÀNH SƠN

}
finally
{
conn.Close();
}
return f;

3.
KẾT NỐI GIỮA 2 MÁY TÍNH
- Làm theo các bước như hình vẽ
- Tắt firewall.

- Làm như hình vẽ.

Trang 24


QUẢN LÝ SHOP TÌNH YÊU

-


GVHD:TS. NGUYỄN THÀNH SƠN

Chọn

Trang 25


×