You are on page 1of 37

B GIAO DUC VA A O TAO

TRNG I HC S PHM K THUT TPHCM


KHOA CNG NGH THNG TIN

MN: H QUN TR C S D LIU


TI:

PHN MM HC TING ANH

GVHD: TS.NGUYN THNH SN


SVTH: NGUYN C LINH 12110101
TRN THNH KHOA 13110082

TP. H Ch Minh, ngy 9 thng 11 nm 2016


GVHD: TS.NGUYN THNH SN

Mc Lc
CHNG 1: C T H THNG ................................................................................................................... 3
I. M t phn mm: ............................................................................................................................3
1. Tm quan trng ca ting anh .......................................................................................................3
2. M t d liu phn mm. ................................................................................................................3
II. Quy trnh x l ................................................................................................................................4
III. M hnh Diagram. ...........................................................................................................................5
CHNG 2: CU HNH V CI T H THNG ............................................................................ 6
1. To c s d liu v rng buc (Constraints). ..............................................................................6
2. To cc cu lnh thm, sa, xa trn Stored Procedure ..............................................................9
2.1. Thm, sa, xa User bng quyn admin. .............................................................................. 9
2.2. Thm im.............................................................................................................................. 11
2.3. Thm ng php. ..................................................................................................................... 11
2.4. Thm t vng......................................................................................................................... 12
2.5. Sa thng tin ngi dng ..................................................................................................... 12
2.6. Next, Back t vng, grammar .............................................................................................. 12
2.7. Kim tra login, thay i password ....................................................................................... 16
Kim tra login ............................................................................................................................ 16
Thay i password..................................................................................................................... 16
2.8. Ly d liu ng php, t vng ............................................................................................. 16
Ly d liu kim tra t vng.................................................................................................... 16
Ly d liu kim tra ng php ................................................................................................. 17
Ly d liu bi hc t vng ...................................................................................................... 17
Ly d liu bi hc ng php ................................................................................................... 17
3. Kt ni c s d liu ......................................................................................................................18
4. Phn quyn.....................................................................................................................................21
4.1. Bng c s d liu dng phn quyn:............................................................................. 21
4.2. Code phn quyn trn C#: .................................................................................................... 21
4.3. Phn quyn trn c s d liu: ............................................................................................. 22
5. Trigger, transaction.......................................................................................................................22
6. Function..........................................................................................................................................24
7. View ................................................................................................................................................27
8. Index ...............................................................................................................................................30

Phn Mm Hc Ting Anh 1


GVHD: TS.NGUYN THNH SN

CHNG 3: HNG DN S DNG PHN MM .......................................................................... 32


1. ng nhp ......................................................................................................................................32
2. Mn hnh trang ch: .....................................................................................................................32
3. Xem thng tin.................................................................................................................................33
4. Qun l ...........................................................................................................................................34
5. Cu hnh. ........................................................................................................................................36

Phn Mm Hc Ting Anh 2


GVHD: TS.NGUYN THNH SN

CHNG 1: C T H THNG
I. M t phn mm:
1. Tm quan trng ca ting anh
Hc ngoi ng chnh l qu trnh bin nhng m thanh v con ch v
ngha thnh nhng biu tng c ngha i vi chnh mnh. Th nhng
nhng m thanh v con chy li qu phong ph vi rt nhiu bin tu
tinh t, hm cha c mt nn vn ha nn l d nhin chng c mt
phng php no c th thng hiu mt ngn ng trong vng 21 ngy.
iu ny cng ni ln rng ch c ng cnh v s tri nghim qua mt
thi gian di mi c th gip chng ta nm vng c mt ngoi ng.
Hc ting Anh cng vy. Vai tr ca Ting Anh i vi nhng ngi
lm vic trong lnh vc Cng ngh thng tin(CNTT) l iu khng th
ph nhn. Tuy nhin vic hc mt ngoi ng, d rt ph thng nh ting
Anh, dng nh vn lun l mt bc tng cao v dy rt kh vt qua.
Bn cnh , nhu cu hc tp v lm vic trn my vi tnh ngy cng
tng. V vy, mt phn mm h tr hc Ting Anh l mt nhu cu thit
yu.
Trong chng trnh ny, ngi dng c th rn luyn k nng nghe
bng ting Anh cc vn lin quan trong lnh vc cng ngh thng tin
thng qua cc bi c hiu, cc on hi thoi do cc gio vin dy dn
kinh nghim ca b mn Ting Anh v CNTT ca trng i hc Oxford
danh ting bin son.
2. M t d liu phn mm.
hc ting anh hiu qu, trc ht chng ta nn c vn t vng nht
nh. V vic hc ng php thi chc chn l khng gip hc gii
ting anh. Nhng li l nn tng cho vn kin thc ca bn sau ny. Bn
hy coi ng php l mt bi tp sinh l m cc cu th hay vn ng vin
vn lm: nhng bi tp u n chun b trc trn u quan trng.
V tm quan trng ca vic hc t vng v ng php, cho nn phn
mm ca chng em s tp trung i su vo vic gip ngi hc c th
nng cao vn t vng cng nh nm chc nn tng ng php ting anh.
Phn mm gm cc thnh phn chnh.
Qun l thng tin ngi dng v quyn ng nhp h thng: lu
thng tin ngi dng khi ngi dung to ti khon trong phn mm
gm: M User, H Tn, Ngy Sinh, Email, UserName, Password.
Qun l Tracking: lu thng tin cn thit ca ngi dng bit
ngi dng hc t vng v ng php ti phn no.
Qun l im: lu tr thng tin im ca ngi dng bao gm: M
User, M Kim Tra, im.

Phn Mm Hc Ting Anh 3


GVHD: TS.NGUYN THNH SN

Qun l bi hc: mi ngi dng s c mt danh sch bi hc cho


ring mnh, mi bi hc u c phn t vng v ng php bao gm:
Qun l bi hc: bao gm cc thng tin sau: M Bi Hc, Tn
Bi Hc, Ngy Hc, M User.
Qun l chi tit bi hc: bao gm cc thng tin sau: M Chi
Tit Bi Hc, M Bi Hc.
Qun l kim tra: mi ngi dng s c mt danh sch cc bi kim
tra cho ring mnh, mi bi kim tra u c phn t vng v ng php
bao gm:
Qun l kim tra: bao gm cc thng tin sau: M Kim Tra,
Ngy Thi, Loi Bi Kim Tra, M User
Qun l chi tit kim tra: bao gm cc thng tin sau: M Chi
Tit Kim Tra, M Kim Tra.
Qun l t vng: lu tr cc thng tin sau: M T Vng, T Vng,
Description, Stralete, M Chi Tit Bi Hc, M Chi Tit Kim Tra.
Qun l grammar: lu cc thng tin sau: M Grammar, Syntax,
Name Grammar, Description, M Chi Tietes Kim Tra, M Chi Tit
Bi Hc
II. Quy trnh x l
s dng cc chc nng ca phn mm, yu cu ngi dng phi
ng nhp vo h thng. Admin c quyn cho ngi dng vo h
thng vi quyn no trn h thng. Vic thc hin ng nhp thng
qua bng ng Nhp.
Khi ngi dng hc n mt s bi nht nh, Admin s to ra
kim tra ngi dng kim tra li kin thc thng qua bng To Bi
Kim Tra.
Khi ngi dng hc xong bi hc, Admin phi to ra bi hc tip theo
ngi dng tip tc hc trn h thng thng qua bng To Bi
Hc.
Nu mt phn hay ton b bi hc khng chnh xc, ngi hc c th
report li li Admin kim tra v sa li thng qua bng Report.
Khi ngi dng mi ng k thng tin to account ti bng ng
K, thng tin s c gi v Admin Admin xt duyt.
Ngi dng c th xem thng tin c nhn v thng tin vic hc ca
mnh qua bng Thng tin User.
Khi ngi dng mun seach t vng, ngi dng c th seach thng
qua bng Tra T Vng.

Phn Mm Hc Ting Anh 4


GVHD: TS.NGUYN THNH SN

III. M hnh Diagram.

ChiTietBaiHoc
CauHoi
MaChiTietBH
CauHoi
MaBaiHoc
MaGrammar
NoiDung
DapAn

Diem
UserName
Point
maKiemTra

TuVung
maTuVung
TuVung
Description
Stranlate
Users MaChiTietBH
UserName
MaChiTietKTra
HoTen
NgaySinh
Email
PassWord
Quyen Grammar
maGrammar
Syntax
ChiTietKTra
MaChiTietKTra NameGrammar

maKiemTra Descripttion
MaChiTietKTra
MaChiTietBH

Tracking
MaTracking
UserName BaiHoc
maKiemTra_Grammar MaBaiHoc
MaBaiHoc_Grammar TenBaiHoc
maKiemTra_TuVung
maBH_TuVung

KiemTra
maKiemTra
LoaiBaiKiemTra

Phn Mm Hc Ting Anh 5


GVHD: TS.NGUYN THNH SN

CHNG 2: CU HNH V CI T H THNG


1. To c s d liu v rng buc (Constraints).
Trong phn ny p dng cc rng buc nh: unique, not null, rng buc
kha ngoi, rng buc kha chnh, t tn cho cc rng buc.

CREATE TABLE [dbo].[BaiHoc](


[MaBaiHoc] [int] NOT NULL,
[TenBaiHoc] [nchar](30) NULL,
[NgayHoc] [date] NULL,
[maUser] [int] NOT NULL,
CONSTRAINT [PK_BaiHoc] PRIMARY KEY

CREATE TABLE [dbo].[CauHoi](


[CauHoi] [int] NOT NULL,
[MaGrammar] [int] NOT NULL,
[NoiDung] [nvarchar](500) NULL,
[DapAn] [nvarchar](50) NULL,
CONSTRAINT [PK_CauHoi] PRIMARY KEY

CREATE TABLE [dbo].[ChiTietBaiHoc](


[MaChiTietBH] [int] NOT NULL,
[MaBaiHoc] [int] NULL,
CONSTRAINT [PK_ChiTietBaiHoc] PRIMARY KEY

CREATE TABLE [dbo].[ChiTietKTra](


[MaChiTietKTra] [int] IDENTITY(1,1) NOT NULL,
[maKiemTra] [int] NULL,
CONSTRAINT [PK_ChiTietKTra] PRIMARY KEY

CREATE TABLE [dbo].[Diem](


[UserName] [nvarchar](50) NOT NULL,
[Point] [int] NULL,
[maKiemTra] [int] NOT NULL,
CONSTRAINT [PK_Diem_1] PRIMARY KEY

CREATE TABLE [dbo].[Grammar](


[maGrammar] [int] IDENTITY(1,1) NOT NULL,
[Syntax] [nvarchar](50) NULL,
[NameGrammar] [nvarchar](50) NULL,
[Descripttion] [nvarchar](300) NULL,
[MaChiTietKTra] [int] NULL,
[MaChiTietBH] [int] NULL,
CONSTRAINT [PK_Grammar] PRIMARY KEY

CREATE TABLE [dbo].[KiemTra](


[maKiemTra] [int] IDENTITY(1,1) NOT NULL,
Phn Mm Hc Ting Anh 6
GVHD: TS.NGUYN THNH SN

[LoaiBaiKiemTra] [nchar](10) NULL,


CONSTRAINT [PK_KiemTra_1] PRIMARY KEY

CREATE TABLE [dbo].[Tracking](


[MaTracking] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](50) NULL,
[maKiemTra_Grammar] [int] NULL,
[MaBaiHoc_Grammar] [int] NULL,
[maKiemTra_TuVung] [int] NULL,
[maBH_TuVung] [int] NULL,
CONSTRAINT [PK_Tracking_1] PRIMARY KEY

CREATE TABLE [dbo].[TuVung](


[maTuVung] [int] IDENTITY(1,1) NOT NULL,
[TuVung] [nchar](50) NULL,
[Description] [nvarchar](200) NULL,
[Stranlate] [nvarchar](200) NULL,
[MaChiTietBH] [int] NULL,
[MaChiTietKTra] [int] NULL,
CONSTRAINT [PK_TuVung] PRIMARY KEY

CREATE TABLE [dbo].[Users](


[UserName] [nvarchar](50) NOT NULL,
[HoTen] [nvarchar](50) NULL,
[NgaySinh] [nchar](10) NULL,
[Email] [nvarchar](50) NULL,
[PassWord] [nvarchar](50) NULL,
[Quyen] [nchar](15) NULL,
CONSTRAINT [PK_User] PRIMARY KEY

Rng buc kha ngoi:


ALTER TABLE [dbo].[BaiHoc] WITH CHECK ADD CONSTRAINT
[FK_BaiHoc_ChiTietBaiHoc] FOREIGN KEY([MaBaiHoc])
REFERENCES [dbo].[ChiTietBaiHoc] ([MaChiTietBH])
GO
ALTER TABLE [dbo].[BaiHoc] CHECK CONSTRAINT [FK_BaiHoc_ChiTietBaiHoc]
GO
ALTER TABLE [dbo].[ChiTietKTra] WITH CHECK ADD CONSTRAINT
[FK_ChiTietKTra_KiemTra] FOREIGN KEY([maKiemTra])
REFERENCES [dbo].[KiemTra] ([maKiemTra])
GO
ALTER TABLE [dbo].[ChiTietKTra] CHECK CONSTRAINT [FK_ChiTietKTra_KiemTra]
GO
ALTER TABLE [dbo].[Diem] WITH CHECK ADD CONSTRAINT [FK_Diem_Users]
FOREIGN KEY([UserName])
REFERENCES [dbo].[Users] ([UserName])

Phn Mm Hc Ting Anh 7


GVHD: TS.NGUYN THNH SN

GO
ALTER TABLE [dbo].[Diem] CHECK CONSTRAINT [FK_Diem_Users]
GO
ALTER TABLE [dbo].[Grammar] WITH CHECK ADD CONSTRAINT
[FK_Grammar_ChiTietBaiHoc] FOREIGN KEY([MaChiTietBH])
REFERENCES [dbo].[ChiTietBaiHoc] ([MaChiTietBH])
GO
ALTER TABLE [dbo].[Grammar] CHECK CONSTRAINT [FK_Grammar_ChiTietBaiHoc]
GO
ALTER TABLE [dbo].[Grammar] WITH CHECK ADD CONSTRAINT
[FK_Grammar_ChiTietKTra] FOREIGN KEY([MaChiTietKTra])
REFERENCES [dbo].[ChiTietKTra] ([MaChiTietKTra])
GO
ALTER TABLE [dbo].[Grammar] CHECK CONSTRAINT [FK_Grammar_ChiTietKTra]
GO
ALTER TABLE [dbo].[Tracking] WITH CHECK ADD CONSTRAINT
[FK_Tracking_BaiHoc] FOREIGN KEY([MaBaiHoc_Grammar])
REFERENCES [dbo].[BaiHoc] ([MaBaiHoc])
GO
ALTER TABLE [dbo].[Tracking] CHECK CONSTRAINT [FK_Tracking_BaiHoc]
GO
ALTER TABLE [dbo].[Tracking] WITH CHECK ADD CONSTRAINT
[FK_Tracking_KiemTra] FOREIGN KEY([maKiemTra_Grammar])
REFERENCES [dbo].[KiemTra] ([maKiemTra])
GO
ALTER TABLE [dbo].[Tracking] CHECK CONSTRAINT [FK_Tracking_KiemTra]
GO
ALTER TABLE [dbo].[Tracking] WITH CHECK ADD CONSTRAINT [FK_Tracking_Users]
FOREIGN KEY([UserName])
REFERENCES [dbo].[Users] ([UserName])
GO
ALTER TABLE [dbo].[Tracking] CHECK CONSTRAINT [FK_Tracking_Users]
GO
ALTER TABLE [dbo].[TuVung] WITH CHECK ADD CONSTRAINT
[FK_TuVung_ChiTietBaiHoc] FOREIGN KEY([MaChiTietBH])
REFERENCES [dbo].[ChiTietBaiHoc] ([MaChiTietBH])
GO
ALTER TABLE [dbo].[TuVung] CHECK CONSTRAINT [FK_TuVung_ChiTietBaiHoc]
GO
ALTER TABLE [dbo].[TuVung] WITH CHECK ADD CONSTRAINT
[FK_TuVung_ChiTietKTra] FOREIGN KEY([MaChiTietKTra])
REFERENCES [dbo].[ChiTietKTra] ([MaChiTietKTra])
GO
ALTER TABLE [dbo].[TuVung] CHECK CONSTRAINT [FK_TuVung_ChiTietKTra]
GO

Phn Mm Hc Ting Anh 8


GVHD: TS.NGUYN THNH SN

2. To cc cu lnh thm, sa, xa trn Stored Procedure


2.1. Thm, sa, xa User bng quyn admin.
Thm
CREATE PROCEDURE [dbo].[sp_Insert_Username]
@HoTen nvarchar(50),
@NgaySinh date,
@EMAIL NVARCHAR(50),
@UserName nvarchar(50),
@PASS NVARCHAR(50),
@Quyen NVARCHAR(50)

AS
Begin
declare @sql nvarchar(max)
declare @count int
SET @count = (SELECT COUNT(*) FROM Users WHERE UserName
=@UserName);

IF(@count =0)
BEGIN
IF(@Quyen ='HV')
BEGIN
set @sql = 'CREATE LOGIN [' +@USERNAME+
']WITH PASSWORD= '''+@PASS+''', DEFAULT_DATABASE=[Toeic],
CHECK_EXPIRATION=ON, CHECK_POLICY=ON; CREATE USER['
+@USERNAME+'] FOR LOGIN[' +@USERNAME+'];ALTER ROLE
[db_owner] ADD MEMBER ['+@UserName+']';
exec(@sql);
print 'EXCE HV'
END
IF(@Quyen='ADMIN')
BEGIN
set @sql = 'CREATE LOGIN [' +@USERNAME+
']WITH PASSWORD= '''+@PASS+''', DEFAULT_DATABASE=[Toeic],
CHECK_EXPIRATION=ON, CHECK_POLICY=ON ;ALTER SERVER
ROLE [securityadmin] ADD MEMBER [' +@USERNAME+']; CREATE
USER[' +@USERNAME+'] FOR LOGIN[' +@USERNAME+'];ALTER
ROLE [db_owner] ADD MEMBER ['+@UserName+']';
exec(@sql);
print 'EXCE Admin'
END
ELSE
BEGIN

Phn Mm Hc Ting Anh 9


GVHD: TS.NGUYN THNH SN

set @sql = 'CREATE LOGIN [' +@USERNAME+


']WITH PASSWORD= '''+@PASS+''', DEFAULT_DATABASE=[Toeic],
CHECK_EXPIRATION=ON, CHECK_POLICY=ON ;ALTER SERVER
ROLE [securityadmin] ADD MEMBER [' +@USERNAME+']; CREATE
USER[' +@USERNAME+'] FOR LOGIN[' +@USERNAME+'];ALTER
ROLE [db_datareader] ADD MEMBER ['+@UserName+']';
exec(@sql);
print 'EXCE Admin'
END

INSERT INTO dbo.Users VALUES


(@UserName,@HoTen,@NgaySinh,@EMAIL,@PASS,@Quyen);
INSERT INTO
dbo.Tracking(UserName,maKiemTra_Grammar,MaBaiHoc_Grammar,maKie
mTra_TuVung,maBH_TuVung) VALUES (@UserName,1,1,1,1);

END
End

Sa
CREATE PROCEDURE [dbo].[AD_UDAPTE_NGUOIDUNG]
@HoTen nvarchar(50),
@NgaySinh date,
@EMAIL NVARCHAR(50),
@UserName nvarchar(50),
@PASS NVARCHAR(50),
@QUYEN NVARCHAR(50)

AS
Begin
UPDATE DBO.Users SET
HoTen=@HoTen,NgaySinh=@NgaySinh,Email=@EMAIL,UserN
ame=@UserName,PassWord=@PASS,Quyen=@QUYEN where
UserName=@UserName;

End

Xa
CREATE PROCEDURE [dbo].[delete_user]
@userName nvarchar(50)
AS
Begin
Phn Mm Hc Ting Anh 10
GVHD: TS.NGUYN THNH SN

declare @sql1 nvarchar(max)


declare @sql2 nvarchar(max)
declare @sql3 nvarchar(max)
delete from dbo.Users where UserName =@userName;
set @sql1='DROP USER ' + @USERNAME+'';
set @sql2='DROP LOGIN ' + @userName+'';

exec(@sql1);
exec(@sql2);
End
Ly thng tin User
CREATE PROCEDURE [dbo].[LAYTHONGTIN_USER]
@UserName nvarchar(50)
AS
Begin
SELECT * FROM dbo.laythongtin( @UserName);
End
2.2. Thm im
CREATE PROCEDURE [dbo].[Insert_DIEM]
@MaUSER INT,
@Point INT,
@MaKTra INT
AS
Begin
INSERT INTO dbo.Diem VALUES
(@MaUSER,@Point,@MaKTra);
End

2.3. Thm ng php.


Create PROCEDURE [dbo].[Insert_Grammer]
@Syntax nvarchar(50),
@NameGrammar nvarchar(50),
@Descripttion nvarchar(300),
@MaChiTietBH int,
@MaChiTietKTra int

AS
Begin
INSERT INTO
dbo.Grammar(Syntax,NameGrammar,Descripttion,MaChiTietBH,

Phn Mm Hc Ting Anh 11


GVHD: TS.NGUYN THNH SN

MaChiTietKTra) VALUES
(@Syntax,@NameGrammar,@Descripttion,@MaChiTietBH,@Ma
ChiTietKTra);
End

2.4. Thm t vng.


CREATE PROCEDURE [dbo].[Insert_TuVung]
@TuVung nvarchar(50),
@Description nvarchar(200),
@Stranlate nvarchar(200),
@MaChiTietBH int,
@MaChiTietKTra int
AS
Begin
INSERT INTO dbo.TuVung
(TuVung,TuVung.Description,Stranlate,MaChiTietBH,MaChiTiet
KTra) VALUES
(@TuVung,@Description,@Stranlate,@MaChiTietBH,@MaChiTi
etKTra);
End

2.5. Sa thng tin ngi dng


CREATE PROCEDURE [dbo].[UDAPTE_NGUOIDUNG]
@HoTen nvarchar(50),
@NgaySinh date,
@EMAIL NVARCHAR(50),
@UserName nvarchar(50)
AS
Begin
UPDATE DBO.Users SET
HoTen=@HoTen,NgaySinh=@NgaySinh,Email=@EMAIL,UserN
ame=@UserName where UserName=@UserName;
End

2.6. Next, Back t vng, grammar


Next t vng
CREATE PROCEDURE [dbo].[NEXT_TUVUNG]
@USERNAME VARCHAR(50)
Begin
DECLARE @TEMP INT;

Phn Mm Hc Ting Anh 12


GVHD: TS.NGUYN THNH SN

Declare CS_TuVung CURSOR FOR(SELECT* FROM


LAYMABH_TuVung_TRACKING(@USERNAME));
OPEN CS_TuVung
FETCH NEXT FROM CS_TuVung INTO @TEMP
CLOSE CS_TuVung
IF(@TEMP<12)
BEGIN
UPDATE DBO.Tracking SET maBH_TuVung= @TEMP+1
WHERE UserName=@USERNAME;
END
SELECT *
FROM
LAYMABH_TuVung_TRACKING(@USERNAME),TuVung,Chi
TietBaiHoc
WHERE TuVung.MaChiTietBH = ChiTietBaiHoc.MaChiTietBH
AND ChiTietBaiHoc.MaBaiHoc =
LAYMABH_TuVung_TRACKING.maBH_TuVung;
End
Next kim tra t vng
CREATE PROCEDURE [dbo].[NEXT_KTra_TUVUNG]
@USERNAME VARCHAR(50)
AS
Begin
DECLARE @TEMP INT;
Declare CS_TuVung CURSOR FOR(SELECT* FROM
LAY_MA_KTra_TuVung_TRACKING(@USERNAME));
OPEN CS_TuVung
FETCH NEXT FROM CS_TuVung INTO @TEMP
CLOSE CS_TuVung
IF(@TEMP<12)
BEGIN
UPDATE DBO.Tracking SET maKiemTra_TuVung=
@TEMP+1 WHERE UserName=@USERNAME;
END
SELECT *
FROM
LAY_MA_KTra_TuVung_TRACKING(@USERNAME),TuVung
,ChiTietKTra

Phn Mm Hc Ting Anh 13


GVHD: TS.NGUYN THNH SN

WHERE TuVung.MaChiTietKTra = ChiTietKTra.MaChiTietKTra


AND ChiTietKTra.maKiemTra =
LAY_MA_KTra_TuVung_TRACKING.maKiemTra_TuVung;
End
Next ng php
CREATE PROCEDURE [dbo].[NEXT_GRAMMAR]
@USERNAME VARCHAR(50)
AS
Begin
DECLARE @TEMP INT;
Declare CS_MAGRAMMAR CURSOR FOR(SELECT*
FROM
LAYMABH_GRAMMAR_TRACKING(@USERNAME));
OPEN CS_MAGRAMMAR
FETCH NEXT FROM CS_MAGRAMMAR INTO @TEMP
CLOSE CS_MAGRAMMAR
if(@TEMP<9)
BEGIN
UPDATE DBO.Tracking
SET MaBaiHoc_GRAMMAR= @TEMP+3
WHERE UserName=@USERNAME;
END
SELECT *
FROM
LAYMABH_GRAMMAR_TRACKING(@USERNAME),Gramm
ar,ChiTietBaiHoc
WHERE Grammar.MaChiTietBH = ChiTietBaiHoc.MaChiTietBH
AND ChiTietBaiHoc.MaBaiHoc >=
LAYMABH_GRAMMAR_TRACKING.MABAIHOC_GRAMM
AR AND ChiTietBaiHoc.MaBaiHoc <
LAYMABH_GRAMMAR_TRACKING.MABAIHOC_GRAMM
AR +3;
End
Back kim tra t vng
CREATE PROCEDURE [dbo].[BACK_TuVung_KTra]
@MA_TuVung INT,
@username varchar(50)
AS
Begin

Phn Mm Hc Ting Anh 14


GVHD: TS.NGUYN THNH SN

UPDATE dbo.Tracking SET maKiemTra_TuVung


=@MA_TuVung -1 where UserName =@username;
SELECT *
FROM TuVung,ChiTietKTra
WHERE TuVung.MaChiTietKTra= ChiTietKTra.MaChiTietKTra
AND ChiTietKTra.maKiemTra= @MA_TuVung -1
End

Back t vng
CREATE PROCEDURE [dbo].[BACK_TuVung]
@MA_TuVung INT,
@username varchar(50)
AS
Begin
UPDATE dbo.Tracking SET maBH_TuVung =@MA_TuVung
-1 where UserName =@username;
SELECT *
FROM TuVung,ChiTietBaiHoc
WHERE TuVung.MaChiTietBH =
ChiTietBaiHoc.MaChiTietBH AND ChiTietBaiHoc.MaBaiHoc=
@MA_TuVung -1
End

Back ng php
CREATE PROCEDURE [dbo].[BACK_GRAMMAR]
@MA_GRAMMAR INT,
@username varchar(50)
AS
Begin
UPDATE dbo.Tracking SET MaBaiHoc_Grammar
=@MA_GRAMMAR -1 where UserName =@username;

SELECT *
FROM Grammar,ChiTietBaiHoc
WHERE Grammar.MaChiTietBH =
ChiTietBaiHoc.MaChiTietBH AND ChiTietBaiHoc.MaBaiHoc>
@MA_GRAMMAR -3 AND ChiTietBaiHoc.MaBaiHoc<=
@MA_GRAMMAR
End

Phn Mm Hc Ting Anh 15


GVHD: TS.NGUYN THNH SN

2.7. Kim tra login, thay i password


Kim tra login
CREATE PROCEDURE [dbo].[checklogin]
@username varchar(100),
@password varchar(100)

AS
Begin
Select UserName,Password,Quyen from Users where
UserName=@username and Password=@password
End
Thay i password
CREATE PROCEDURE [dbo].[ChangePassWord]
@username varchar(50),
@password_old varchar(100),
@password_new varchar(100)
AS
Begin
if((Select count( *) from Users where UserName=@username and
PassWord =@password_old)=1)
begin
update Users set PassWord =@password_new where UserName
=@username;
select * from Users;

end
End

2.8. Ly d liu ng php, t vng


Ly d liu kim tra t vng
CREATE PROCEDURE [dbo].[GET_KTra_TuVung] @USERNAME
VARCHAR(50)
AS
Begin
SELECT *
FROM
LAY_MA_KTra_TuVung_TRACKING(@USERNAME),TuVung,ChiT
ietBaiHoc

Phn Mm Hc Ting Anh 16


GVHD: TS.NGUYN THNH SN

WHERE TuVung.MaChiTietBH = ChiTietBaiHoc.MaChiTietBH AND


ChiTietBaiHoc.MaBaiHoc =
LAY_MA_KTra_TuVung_TRACKING.maKiemTra_TuVung
End
Ly d liu kim tra ng php
CREATE PROCEDURE [dbo].[GET_KTra_GRAMMAR]
@USERNAME VARCHAR(50)
AS
Begin
SELECT *
FROM
LAYMA_KTra_GRAMMAR_TRACKING(@USERNAME),Grammar,
ChiTietBaiHoc
WHERE Grammar.MaChiTietBH = ChiTietBaiHoc.MaChiTietBH AND
ChiTietBaiHoc.MaBaiHoc =
LAY_MA_KTra_GRAMMAR_TRACKING.maKiemTra_Grammar
End

Ly d liu bi hc t vng
CREATE PROCEDURE [dbo].[GET_BH_TuVung] @USERNAME
VARCHAR(50)
AS
Begin
SELECT *
FROM
LAYMABH_TuVung_TRACKING(@USERNAME),TuVung,ChiTietB
aiHoc
WHERE TuVung.MaChiTietBH = ChiTietBaiHoc.MaChiTietBH AND
ChiTietBaiHoc.MaBaiHoc =
LAYMABH_TuVung_TRACKING.maBH_TuVung
End

Ly d liu bi hc ng php
CREATE PROCEDURE [dbo].[GET_BH_GRAMMER]
@USERNAME VARCHAR(50)
AS
Begin
SELECT *

Phn Mm Hc Ting Anh 17


GVHD: TS.NGUYN THNH SN

FROM
LAYMABH_GRAMMAR_TRACKING(@USERNAME),Grammar,Chi
TietBaiHoc
WHERE Grammar.MaChiTietBH = ChiTietBaiHoc.MaChiTietBH AND
ChiTietBaiHoc.MaBaiHoc >=
LAYMABH_GRAMMAR_TRACKING.MABAIHOC_GRAMMAR
AND ChiTietBaiHoc.MaBaiHoc <
LAYMABH_GRAMMAR_TRACKING.MABAIHOC_GRAMMAR +3
End

3. Kt ni c s d liu
Code kt ni c s d liu thng qua lp DataAccesLayer.

namespace DAL
{

public class DALayer


{
SqlConnection cnn=null;
SqlCommand cmd=null;
SqlDataAdapter adp=null;
string str = null;

public DALayer(string Source,string username,string password){


str="Data Source="+Source+";Initial Catalog=Toeic;User
ID="+username+";Password="+password+"";
cnn = new SqlConnection(str);
cmd = cnn.CreateCommand();
}

public DataSet ExecuteQueryDataSet(string strSQL,CommandType


ct,params SqlParameter[] p)
{
if (cnn.State == ConnectionState.Open)
cnn.Close();
cnn.Open();

DataSet ds = new DataSet();


try

Phn Mm Hc Ting Anh 18


GVHD: TS.NGUYN THNH SN

{
cmd.CommandText = strSQL;
cmd.CommandType = ct;
adp = new SqlDataAdapter(cmd);

adp.Fill(ds);

}
catch (Exception e)
{
Console.WriteLine("co loi ket noi den datatbase!!!",
e.InnerException);

}
return ds;
}
public DataSet LayDuLieu_DK(string strSQL,CommandType
ct,params SqlParameter[] param)
{
if (cnn.State == ConnectionState.Open)
cnn.Close();
cnn.Open();
cmd.Parameters.Clear();
//cmd.CommandText = strSQL;
//cmd.CommandType = ct;
foreach (SqlParameter p in param)
{
cmd.Parameters.Add(p);

DataSet ds = new DataSet();


try
{
cmd.CommandText = strSQL;
cmd.CommandType = ct;
adp = new SqlDataAdapter(cmd);

adp.Fill(ds);

Phn Mm Hc Ting Anh 19


GVHD: TS.NGUYN THNH SN

}
catch (Exception e)
{
Console.WriteLine("co loi LayDuLieu_DK",
e.InnerException);

}
return ds;
}

public bool MyExecuteNonQuery(string strSQL,CommandType


ct,ref string error,params SqlParameter[] param)
{
bool f = false;
if (cnn.State == ConnectionState.Open)
cnn.Close();
cnn.Open();
cmd.Parameters.Clear();
cmd.CommandText = strSQL;
cmd.CommandType = ct;
foreach (SqlParameter p in param)
cmd.Parameters.Add(p);
try
{
cmd.ExecuteNonQuery();
f = true;
}
catch (SqlException ex)
{
error = ex.Message;
}
finally
{
cnn.Close();
}
return f;
}
}

Phn Mm Hc Ting Anh 20


GVHD: TS.NGUYN THNH SN

4. Phn quyn
4.1. Bng c s d liu dng phn quyn:

ti ny to ra 2 user: ngi dng v admin

4.2. Code phn quyn trn C#:


private void btnOK_Click(object sender, EventArgs e)
{
thongtinnguoidung = new
BAL_USER(cbbDataSource.Text.ToString(), txtten.Text.ToString(),
txtmatkhau.Text.ToString());
dt = new DataTable();
dt.Clear();
try
{

Phn Mm Hc Ting Anh 21


GVHD: TS.NGUYN THNH SN

try
{
dt =
thongtinnguoidung.Checklogin(txtten.Text.ToString(),
txtmatkhau.Text.ToString()).Tables[0];
temp = dt.Rows[0][2].ToString();
}
catch(Exception){
temp = "QT";
}
session = txtten.Text.ToString();
this.Hide();

MainForm mainform = new MainForm();


mainform.username = session;
mainform.DataSource =
cbbDataSource.Text.ToString();
mainform.password = txtmatkhau.Text.ToString();
mainform.Quyen = temp;

}
catch (System.Data.SqlClient.SqlException sqlException)
{

System.Windows.Forms.MessageBox.Show(sqlException.Message);
}
}
4.3. Phn quyn trn c s d liu:
5. Trigger, transaction
5.1. To trigger m bo rng im nhp vo phi ln hn 0 v nh hn
10

Create TRIGGER [dbo].[CHECK_Diem] --Tn Trigger


ON [dbo].[Diem]
FOR UPDATE,INSERT
AS
BEGIN
DECLARE @Diem AS INT
SELECT @Diem=inserted.Point FROM inserted
IF (@Diem>10 OR @Diem<0)
BEGIN
PRINT N'IM KHNG HP L'
ROLLBACK TRANSACTION
END

Phn Mm Hc Ting Anh 22


GVHD: TS.NGUYN THNH SN

END
5.2. To trigger m bo rng grammar khng c trng nhau
Create TRIGGER [dbo].[CHECK_Grammar] --Tn Trigger
ON [dbo].[Grammar]
FOR UPDATE,INSERT
AS
BEGIN
DECLARE @GRAMMAR AS NCHAR(50), @TEMP AS INT
SELECT @GRAMMAR=inserted.NameGrammar FROM inserted
SELECT @TEMP=COUNT(*) FROM dbo.Grammar
WHERE NameGrammar=@GRAMMAR
IF (@TEMP>1)
BEGIN
PRINT N'GRAMMAR Tn Ti'
ROLLBACK TRANSACTION
END
END

5.3. To trigger m bo rng t vng khng c trng nhau


Create TRIGGER [dbo].[CHECK_TuVung] --Tn Trigger
ON [dbo].[TuVung]
For UPDATE,INSERT
AS
BEGIN
DECLARE @TUVUNG AS NCHAR(50), @TEMP AS INT
SELECT @TUVUNG=inserted.TuVung FROM inserted
SELECT @TEMP=COUNT(*) FROM dbo.TuVung
WHERE TuVung=@TUVUNG
IF (@TEMP>1)
BEGIN
PRINT N'T Vng Tn Ti'
ROLLBACK TRANSACTION
END
END

5.4. To trigger m bo ti khon khng trng nhau.

Create TRIGGER [dbo].[CHECK_USERS] --Tn Trigger


ON [dbo].[Users]
FOR UPDATE,INSERT
AS
BEGIN
DECLARE @USERNAME AS NCHAR(50), @TEMP AS INT
SELECT @USERNAME=inserted.UserName FROM inserted
SELECT @TEMP=COUNT(*) FROM dbo.Users
WHERE UserName=@USERNAME
IF (@TEMP>1)
BEGIN
PRINT N'TI KHON Tn Ti'
ROLLBACK TRANSACTION
END
END

Phn Mm Hc Ting Anh 23


GVHD: TS.NGUYN THNH SN

6. Function
6.1. S dng Function to bng cu hi v p n.
Hm tr v mt bng c 3 ct: Cu hi, Ni dung, p n
CREATE function [dbo].[f_baitap](@grammar int)
returns table
as
return
( select CauHoi.CauHoi,CauHoi.NoiDung,CauHoi.DapAn
from CauHoi
where CauHoi.MaGrammar = @grammar)

6.2. S dng function to bng bi tp grammar


Hm tr v mt bng c 4 ct: Grammar, Cu hi, Ni dung, p
n

Creat function [dbo].[f_BTgrammar](@maBaiHoc int)


returns table
as
return
( select Grammar.maGrammar,CauHoi,CauHoi.NoiDung,CauHoi.DapAn
from f_CTBaiHoc(@maBaiHoc),Grammar,CauHoi
where f_CTBaiHoc.MaChiTietBH = Grammar.MaChiTietBH and
Grammar.maGrammar = CauHoi.MaGrammar)

6.3. S dng function to bng bi tp t vng


Hm tr v mt bng c 2 ct: maTuVung, T Vng

Create function [dbo].[f_BTtuvung](@maBaiHoc int)


returns table
as
return
( select TuVung.maTuVung,TuVung.TuVung
from f_CTBaiHoc(@maBaiHoc),TuVung
where f_CTBaiHoc.MaChiTietBH = TuVung.MaChiTietBH)

6.4. S dng function to bng chi tit bi hc


Hm tr v mt bng c 1 ct: M Chi tit Bi Hc

Creat function [dbo].[f_CTBaiHoc](@maBaiHoc int)


returns table
as
return
( select MaChiTietBH
from ChiTietBaiHoc
where ChiTietBaiHoc.MaBaiHoc = @maBaiHoc)

Phn Mm Hc Ting Anh 24


GVHD: TS.NGUYN THNH SN

6.5. S dng function to bng chi tit kim tra


Hm tr v mt bng c 1 ct: M Chi Tit Kim Tra

Creat function [dbo].[f_CTkiemtra](@maKiemTra int)


returns table
as
return
( select MaChiTietKTra
from ChiTietKTra
where ChiTietKTra.maKiemTra = @maKiemTra)
6.6. S dng function to bng kim tra grammar
Hm tr v mt bng c 4 ct: Grammar, Cu hi, Ni dung, p
n

Creat function [dbo].[f_KTgrammar](@maKiemTra int)


returns table
as
return
( select Grammar.maGrammar,CauHoi,CauHoi.NoiDung,CauHoi.DapAn
from f_CTkiemtra(@maKiemTra),Grammar,CauHoi
where f_CTkiemtra.MaChiTietKTra = Grammar.MaChiTietKTra and
Grammar.maGrammar = CauHoi.MaGrammar)

6.7. S dng function to bng kim tra t vng


Hm tr v mt bng c 2 ct: M t vng, T vng

Creat function [dbo].[f_KTtuvung](@maKiemTra int)


returns table
as
return
( select TuVung.maTuVung,TuVung.TuVung
from f_CTkiemtra(@maKiemTra),TuVung
where f_CTkiemtra.MaChiTietKTra = TuVung.MaChiTietKTra)

6.8. S dng function to bng im kim tra.


Hm tr v mt bng c 3 ct: M user, H Tn, im

Creat function [dbo].[f_PoinKT](@maKT int)


returns table
as

return(
select Users.maUser,Users.HoTen,Point
from Diem,Users
where Diem.maKiemTra = @maKT and Users.maUser = Diem.maUser
)

6.9. S dng function to bng thng k im user


Phn Mm Hc Ting Anh 25
GVHD: TS.NGUYN THNH SN

Hm tr v mt bng c 3 ct: M User, H Tn, im

Creat function [dbo].[f_ThongKeDiem] (@maUser int)


returns table
as
return
(select @maUser as MaUser,Users.HoTen,Diem.Point
from Users,Diem
where Users.maUser = Diem.maUser and Users.maUser = @maUser)

6.10. S dng function to bng tra t in


Hm tr v mt bng c 3 ct: T Vng, Ngha t vng,
Description

Creat function [dbo].[f_tratudien](@tu nvarchar(50))


returns table
as
return
( select TuVung.TuVung,TuVung.Stranlate,TuVung.Description
from TuVung
where TuVung.TuVung like N'%'+@tu+'%')

6.11. S dng function tm im cao nht ca user


Creat function [dbo].[f_MaxDiem](@maUser int)
returns int
as
begin
return
( select Max(Diem.Point) as MaxDiem
from Diem
where Diem.maUser = @maUser)
end

6.12. S dng function tm im cao nht bi kim tra

Creat function [dbo].[f_MaxKT](@maKT int)


returns int
as
begin
return(
select MAX(Point)
from Diem,Users
where Diem.maKiemTra = @maKT and Users.maUser = Diem.maUser
)
end

6.13. S dng function tm bi hc tip theo cho user

Creat function [dbo].[f_NextBH](@maUser int)

Phn Mm Hc Ting Anh 26


GVHD: TS.NGUYN THNH SN

returns nchar(30)
as
begin
declare @CTBH int,@TenBH nchar(30)
select @CTBH = BaiHoc.MaBaiHoc +1
from Tracking,ChiTietBaiHoc,Grammar,BaiHoc
where Tracking.maGrammar = Grammar.maGrammar and Grammar.MaChiTietBH
= ChiTietBaiHoc.MaChiTietBH
and ChiTietBaiHoc.MaBaiHoc = BaiHoc.MaBaiHoc and BaiHoc.maUser =
@maUser
select @TenBH = BaiHoc.TenBaiHoc
from BaiHoc
where BaiHoc.MaBaiHoc = @CTBH
return @TenBH

end

7. View
7.1. S dng View lc ra cc thuc tnh MaDT, SoLuong, NgayNhap p
dng cho vic lm Bo co thng k s lng nhp v bn trong mt
khong thi gian no .

CREATE VIEW [ChiTietNhap] AS


select MaDT,SoLuong,NgayNhap
from ChiTietPhieuNhap, PhieuNhap
where ChiTietPhieuNhap.MaPN=PhieuNhap.MaPN

Kt qu khi ta truy vn t View [ChiTietNhap]

select * from dbo.ChiTietNhap

Phn Mm Hc Ting Anh 27


GVHD: TS.NGUYN THNH SN

CREATE VIEW [ChiTietBan] AS


select MaDT,NgayLap
from ChiTietHoaDon,HoaDon
where ChiTietHoaDon.MaHD=HoaDon.MaHD

Kt qu khi ta truy vn t View [ChiTietBan]

select * from dbo.ChiTietBan

Phn Mm Hc Ting Anh 28


GVHD: TS.NGUYN THNH SN

7.2. S dng cho chc nng lm bo co doanh thu.


create View [BaoCaoDoanhThu] as
select ChiTietHoaDon.MaDT, ChiTietHoaDon.Gia,
ChiTietHoaDon.ThanhTien,
HoaDon.NgayLap
from ChiTietHoaDon, DienThoai, HoaDon
where ChiTietHoaDon.MaDT= DienThoai.MaDT and
ChiTietHoaDon.MaHD=HoaDon.MaHD

kt qu:

7.3. S dng View cho chc nng Tm Kim.


create view [view_DuLieuTimKiem] as
select Gia,TenDT,TenHSX
from DienThoai,HangSX

Phn Mm Hc Ting Anh 29


GVHD: TS.NGUYN THNH SN

where DienThoai.MaHSX=HangSX.MaHSX
kt qu truy vn:

8. Index
1. Index trn ct username
CREATE INDEX indexUser ON Users(username)
2. Index trn ct Tuvung
CREATE INDEX indexTuVung ON TuVung(TuVung)

3. Index trn ct Tranlaste


CREATE INDEX indexTranlaste ON TuVung(Tranlaste)

4. Index trn ct Grammar


CREATE INDEX indexGrammar ON Grammar(NameGrammar)

5. Index trn ct im
CREATE UNIQUE INDEX indexDiem ON DIEM(username,point)
6. Full Text Index
CREATE FULLTEXT CATALOG catalogCourseID
GO
CREATE FULLTEXT INDEX
ON TuVung(TuVung,Description)
KEY INDEX PK_TuVung on catalogCourseID

Phn Mm Hc Ting Anh 30


GVHD: TS.NGUYN THNH SN

Phn Mm Hc Ting Anh 31


GVHD: TS.NGUYN THNH SN

CHNG 3: HNG DN S DNG PHN MM

1. ng nhp
Ngi dng nhp ip sever cha c s d liu v s dng ti khon ca
mnh ng nhp vo h thng.
Phn mn c 2 quyn nh sau:
- Quyn admin.
- Quyn ngi dng.

2. Mn hnh trang ch:


Sau khi ng nhp th trang ch ca mi quyn ng nhp s hin ln.
Nu chn quyn ng nhp l admin th s ra giao din nh sau:

Phn Mm Hc Ting Anh 32


GVHD: TS.NGUYN THNH SN

Nu ng nhp l quyn nhn vin s c giao din sau:

3. Xem thng tin


Trong phn mn ny c th xem thng tin ca cc thnh phn sau:
- Thng tin ti khon.
- Thng k im.
- Hc t vng.
- Hc ng php.
- Kim tra t vng.
- Kim tra ng php.
- Thng tin danh sch t vng.
- Thng tin danh sch ng php.
- Thng tin danh sch ngi hc.
Nu l quyn ngi dng th mc no n i th mc c ngha l h
khng c quyn c xem.
V d: Sau khi ng nhp vi quyn ngi dng, mun xem mc thng
k im. Bn vo Option -> Thng tin ti khon. Lc ny mn hnh
xem danh mc thng tin ti khon hin ln.

Phn Mm Hc Ting Anh 33


GVHD: TS.NGUYN THNH SN

Tng t cho cc mc khc.


Nu l admin cng thao tc ging nh vy.
4. Qun l
phn qun l ny cng qun l cc thng tin nh phn Xem thng tin.
Phn ny cho php chng ta thm,cp nht, xa nhng thng tin m ta
mun.
V d: ta cn qun l danh mc ngi dng.
Vo Danh Sch -> Danh Sch Ngi Dng.
Giao din qun l danh mc ngi dng hin ln.

Lc ny cc nt thm, sa, xa hin ln.

Phn Mm Hc Ting Anh 34


GVHD: TS.NGUYN THNH SN

Nu chn thm th h thng s cho php ta in nhng thng tin v


ngi dng vo. y l giao din khi nhn nt thm.

Sau khi in nhng thng tin v ngi dng xong th ta nhn nt lu


nu mun lu hoc nhn nt hy nu khng mun lu li.
Khi nhn nt lu th ngi dng s c hin th xung phi
di.
Nu mun Sa ngi dng no th ta chn ngi dng bn di v
click chut vo nt Sa. Lc ny, th chng ta ch c th sa trn cc
thuc tnh.

Phn Mm Hc Ting Anh 35


GVHD: TS.NGUYN THNH SN

Nu mun xa th ta chn 1 ngi dng no v click chut vo


nt Xa.

5. Cu hnh.
Nu mun ng xut khi h thng.
Vo Option -> chn ng Xut.
Bn s thot khi h thng. Nu mun vo li h thng phi ng nhp li.
Nu mun thay i mt khu.
Vo Option -> chn i Mt Khu.
Giao din i mt khu hin ln.

Bn s nhp nhng thng tin m h thng yu cu.


Click chut vo i mt khu.
Lc ny mt khu ca bn s c thay i. ln sau khi ng nhp
vo th bn s phi ng nhp bng mt khu mi ny.

Phn Mm Hc Ting Anh 36

You might also like