Professional Documents
Culture Documents
NhatNghe - C# PDF
NhatNghe - C# PDF
MC LC
Lu hnh ni b
Chng 1: C BN NGN NG C#
Bi 1: GII THIU C# 2008
I. Gii thiu C#
Lu hnh ni b Trang 1
C# mang n sc mnh ca C++ cng vi s d dng ca ngn ng Visual Basic.
II. Mi trng lp trnh
Lu hnh ni b Trang 2
* Mc nh: Visual Studio 2008 (Visual Studio .NET) s to ra tp tin Program.cs
cha mt namespace tn ChaoMung v trong namespace ny cha mt
class tn Program.
Bc 4: trong phng thc Main, g on m lnh sau
* V d:
// Xuat ra man hinh chuoi thong bao 'Chao mung ban den voi C# 2008 '
System.Console.WriteLine("Chao mung ban den voi C# 2008 ") ;
System.Console.ReadLine() ;
Bc 5: chy chng trnh, nhn F5 hoc nhp vo nt
1. Bin
a) Khi nim:
- Bin l mt vng lu tr ng vi mt kiu d liu.
- Bin c th c gn gi tr v cng c th thay i gi tr trong khi thc hin cc lnh
ca chng trnh.
b) Khai bo bin: Sau khi khai bo bin phi gn gi tr cho bin
<Kiu_D_Liu> <tn_bin> [ = <gi_tr> ] ;
c) V d 1.1: Khi to v gn gi tr mt bin
class Bien
{
static void Main()
{
// Khai bao va khoi tao bien
int bien = 9 ;
System.Console.WriteLine("Sau khi khoi tao: bien = {0}", bien) ;
// Gan gia tri cho bien
bien = 5 ;
// Xuat ra man hinh
System.Console.WriteLine("Sau khi gan: bien = {0}", bien) ;
}
}
2. Hng
a) Khi nim:
- Hng cng l mt bin nhng gi tr ca hng khng thay i trong khi thc hin cc
lnh ca chng trnh.
- Hng c phn lm 3 loi:
+ Gi tr hng (literal)
+ Biu tng hng (symbolic constants)
+ Kiu lit k (enumerations)
b) Gi tr hng:
V d: x = 100; // 100 c gi l gi tr hng
c) Biu tng hng: gn mt tn hng cho mt gi tr hng.
Khai bo:
<const> <Kiu_D_Liu> <tn_hng> = <gi_tr> ;
V d 1.2: Nhp vo bn knh, in ra chu vi v din tch hnh trn.
Lu hnh ni b Trang 3
class HinhTron
{
static void Main()
{
// Khai bao bieu tuong hang
const double PI = 3.14159 ;
// Khai bao bien
int bankinh ;
double chuvi , dientich ;
string chuoi ;
// Nhap gia tri cho bien chuoi
System.Console.Write("Nhap ban kinh hinh tron: ") ;
chuoi = System.Console.ReadLine() ;
// Doi chuoi thanh so va gan vao bien so
bankinh = System.Convert.ToInt32(chuoi) ;
// Gan gia tri cho bien
chuvi = 2 * bankinh * PI ;
dientich = bankinh * bankinh * PI ;
// Xuat ra man hinh
System.Console.WriteLine("Chu vi hinh tron = {0:0.00}", chuvi) ;
System.Console.WriteLine("Dien tich hinh tron = {0:0.00}", dientich) ;
}
}
d) Kiu lit k: l tp hp cc tn hng c gi tr s khng thay i (danh sch lit k)
Khai bo:
<enum> <Tn_Kiu_Lit_K>
{
<tn_hng_1> = <gi_tr_s_1>,
<tn_hng_2> = <gi_tr_s_2>,
... ,
};
V d:
enum NhietDoNuoc
{
DoDong = 0, DoNguoi = 20,
DoAm = 40, DoNong = 60,
DoSoi = 100,
};
3. Ton t
a) Ton t ton hc: + , - , * , / , %
b) Ton t tng / gim: += , -= , *= , /= , %=
c) Ton t tng / gim 1 n v: ++ , --
d) Ton t gn: =
e) Ton t quan h: == , != , > , >= , < , <=
f) Ton t logic: ! , && , ||
g) Ton t 3 ngi: (iu_Kin) ? (Biu_Thc_1) : (Biu_Thc_2) ;
Lu hnh ni b Trang 4
IV. Quy tc lp trnh, ng dng Console Application
1. Quy tc lp trnh
Khi to mt chng trnh trong C#, chng ta nn thc hin theo cc bc sau:
Bc 1: Xc nh mc tiu ca chng trnh
Bc 2: Xc nh nhng phng php gii quyt vn
Bc 3: To mt chng trnh gii quyt vn
Bc 4: Thc thi chng trnh xem kt qu
Lu hnh ni b Trang 5
7. Ton t '. '
Ton t '. ' c s dng truy cp n phng thc hay d liu trong mt class v
ngn cch gia tn class n mt namespace.
V d: System.Console.WriteLine()
Lu hnh ni b Trang 6
Console.WriteLine("Do dai Ho va Ten la: {0}",dodai) ;
}
}
Bi tp
1. Vit chng trnh nhp vo 1 s nguyn n. Cho bit:
a) n l s chn hay s l ?
b) n l s m hay s khng m ?
2. Vit chng trnh nhp vo 2 s thc dng ch chiu di v chiu rng ca hnh ch
nht. In ra mn hnh chu vi v din tch ca hnh ch nht .
Lu hnh ni b Trang 7
3. Vit chng trnh nhp vo mt s thc dng ch cnh ca mt hnh vung. Tnh din
tch v chu vi ca hnh vung .
4. Vit chng trnh nhp vo h tn (HoTen), im ton (Toan), im l (Ly), im ho
(Hoa) ca mt hc sinh. In ra mn hnh h tn ca hc sinh di dng ch IN HOA v
im trung bnh (Dtb) ca hc sinh ny theo cng thc: Dtb = (Toan + Ly + Hoa) / 3
5. Vit chng trnh nhp bc lng (BacLuong), ngy cng (NgayCong), ph cp
(PhuCap). Tnh tin lnh (TienLanh) = BacLuong * 650000 * NCTL + PhuCap
Vi: NCTL = NgayCong nu NgayCong < 25
= (NgayCong 25) * 2 + 25 nu NgayCong >= 25
--- oOo ---
Lu hnh ni b Trang 8
Bi 2: (tip theo)
KIU D LIU CU TRC IU KHIN CU TRC LP
V. Kiu d liu
Lu hnh ni b Trang 9
2. Chuyn i kiu d liu
V d a:
short x = 10 ;
int y = x ; // chuyn i ngm nh
V d b:
short x ;
int y = 100 ;
x = (short) y ; // p kiu tng minh, trnh bin dch khng bo li
V d c:
short x ;
int y = 100 ;
x = y ; // khng bin dch, li
1. Cu lnh if else
a) C php:
if (iu_Kin)
<Khi lnh iu_Kin ng>
[else
<Khi lnh iu_Kin sai>]
b) V d 2.1: Dng cu lnh iu kin if else
using System;
class Chan_Le
{
static void Main()
{
// Khai bao va khoi tao bien
int bienDem = 9 ;
// Xuat ra man hinh
if (bienDem % 2 == 0)
Console.WriteLine("{0} la so chan", bienDem) ;
else Console.WriteLine("{0} la so le", bienDem) ;
}
}
Lu hnh ni b Trang 10
{
static void Main()
{
// Khai bao va khoi tao bien
int thu = 5 ; // 0: Chu nhat, 1: Thu hai, 2: Thu ba, 3: Thu tu,
// 4: Thu nam, 5: Thu sau, 6: Thu bay
// Xuat ra man hinh
if ((thu == 1) || (thu == 3) || (thu == 5))
Console.WriteLine("Day la ngay 2-4-6") ;
else if ((thu == 2) || (thu == 4) || (thu == 6))
Console.WriteLine("Day la ngay 3-5-7") ;
else Console.WriteLine("Day la ngay chu nhat") ;
}
}
3. Cu lnh switch
a. C php:
switch (Biu_Thc)
{
case <gi_tr_1>:
< Khi lnh 1>
<Lnh Nhy>
case <gi_tr_2>:
< Khi lnh 2>
<Lnh Nhy>
.
[default:
< Khi lnh khc>]
}
b. V d 2.3:
using System;
class Thu
{
static void Main()
{
// Khai bao va khoi tao bien
int thu = 5 ; // 0: Chu nhat, 1: Thu hai, 2: Thu ba, 3: Thu tu,
// 4: Thu nam, 5: Thu sau, 6: Thu bay
// Xuat ra man hinh
switch (thu)
{
case 0:
Console.WriteLine("Chu nhat") ;
break;
case 1:
Console.WriteLine("Thu hai") ;
break;
case 2:
Lu hnh ni b Trang 11
Console.WriteLine("Thu ba") ;
break;
case 3:
Console.WriteLine("Thu tu") ;
break;
case 4:
Console.WriteLine("Thu nam") ;
break;
case 5:
Console.WriteLine("Thu sau") ;
break;
case 6:
Console.WriteLine("Thu bay") ;
break;
default:
Console.WriteLine("Khong phai la thu trong tuan") ;
break;
}
}
}
VII. Cu trc lp
1. Lnh lp while
a. C php:
while (iu_Kin)
< Khi lnh>
b. V d 2.4:
using System;
class UsingWhile
{
static void Main()
{
// Khai bao va khoi tao bien dem
int i = 1 ;
// Xuat ra man hinh
while (i<=10) {
Console.WriteLine("i = {0}",i) ;
i++ ; // tang bien dem,
}
}
}
2. Lnh lp do while
a. C php:
do
< Khi lnh>
while (iu_Kin) ;
Lu hnh ni b Trang 12
b. V d 2.5:
using System;
class UsingDoWhile
{
static void Main()
{
// Khai bao va khoi tao bien dem
int i = 1 ;
// Xuat ra man hinh
do {
Console.WriteLine("i = {0}",i) ;
i++ ; // tang bien dem
} while (i<= 10) ;
}
}
3. Lnh lp for
a. C php:
for ([Khi_to] ; [iu_kin] ; [Bc_lp])
< Khi lnh>
b. V d 2.6:
using System;
class UsingFor
{
static void Main()
{
for (int i=1 ; i<=30 ; i++)
if (i % 10 ==0)
Console.Write("{0} \n\r",i) ;
else Console.Write("{0} ",i) ;
}
}
4. Lnh lp foreach
a. C php:
foreach (<Kiu_tp_hp> <Tn_truy_cp_thnh_phn> in <Tn_tp_hp>)
< Khi lnh>
b. V d 2.7:
using System;
public class UsingForeach
{
public static void Main()
{
int[] intArray = {1,2,3,4,5,6,7,8,9,10};
foreach (int item in intArray)
Console.WriteLine("i = {0} ",item) ;
}
}
Lu hnh ni b Trang 13
Bi tp
1. Vit chng trnh nhp vo 3 s nguyn. In ra mn hnh s nguyn nh nht trong 3 s
.
2. Vit chng trnh nhp vo h tn, im thi cui k ca mt hc sinh. In ra h tn hc
sinh bng ch IN HOA, v kt qu xp loi ca hc sinh theo tiu chun sau:
- Gii: Nu im kt qu >= 8
- Kh: Nu 8 > im >= 6.5
- Trung bnh: Nu 6.5 > im >= 5
- Yu: Nu im < 5
3. Vit chng trnh gii phng trnh bc 1: bx + c = 0
4. Vit chng trnh gii phng trnh bc 2: ax2 + bx + c = 0
5. Vit chng trnh nhp vo mt s nguyn cho n khi nhn c s nguyn dng th
dng.
6. Vit chng trnh nhp vo mt s nguyn n. Cho bit s nguyn n c phi l s nguyn
t khng ?
7. Vit chng trnh nhp vo mt s nguyn dng n ch nm dng lch. Cho bit n c
phi l nm nhun khng ?
8. Vit chng trnh nhp vo s nguyn dng n. In ra mn hnh kt qu ca cc tng sau:
a) S1 = 1 + 2 + 3 + ... + n
1 1 1
b) S2 = 1 + + + ... +
2 3 n
9. Vit chng trnh nhp vo s nguyn dng n. In ra mn hnh:
a) Cc s nguyn dng t 1 n n
b) Tng v trung bnh cng ca n s nguyn dng ny.
Lu hnh ni b Trang 14
Chng 2: XY DNG WINDOWS FORMS APPLICATION
Bi 3: XY DNG WINDOWS FORMS APPLICATION
I. S dng Microsoft Visual Studio 2008
1. Khi ng
Bc 1: Khi ng Visual Studio 2008
Start | All Programs | Microsoft Visual Studio 2008 | Microsoft Visual Studio 2008
Bc 2: Vo menu File | New | Project
Bc 3: Khai bo
Lu hnh ni b Trang 15
C1. Vo menu File | New | Project
C2. Ctrl + Shift + N
C3. Chn cng c New Project trn thanh Standart
b. M Project / Solution:
C1. Vo menu File | Open | Project / Solution
C2. Ctrl + Shift + O
c. Lu Project / Solution
C1. Vo menu File | Save All
C2. Chn cng c Save All trn thanh Standart
d. ng Solution: Vo menu File | Close Solution
* Cc thao tc vi Form
a. Thm mt Form mi vo Project:
Lu hnh ni b Trang 16
b1. C1. Vo menu Project | Add New Item
C2. Chn cng c Add New Item trn thanh Standart
b2. Khai bo
+ Categories: chn Windows Forms
+ Templates: chn Windows Form
+ Name: t tn Form
b3. Nhp Add
b. Thm mt Form c sn vo Project:
b1. Vo menu Project | Add Existing Item
b2. Chn Form
b3. Nhp Add
c. Xa b mt Form ang c trong Project:
b1. Chn Form cn g b ( ca s Solution Explorer)
b2. Vo menu Edit | Delete
d. Lu Form
- Vo menu File | Save Form.cs
- Ctrl + S
* Ghi ch
- Ta em b vo form cc i tng nh: Label, TextBox, Button,
+ Label, TextBox, Button, c gi l control hay cn gi l component.
+ Form c gi l control cha.
- Khi thay i ni dung ca Label, TextBox, Button, ta thay i vo Text. Text c
gi l Property ca control.
3. Control l g?
- Control l lp (class) cc thnh phn c thm vo Windows Forms tng tc gia
ngi s dng vi Windows.
- C rt nhiu loi control trong Windows Forms nh: Label, TextBox, ListBox,
ComboBox, Button,
- Cc control s dng trn Windows Forms dng namespace System.Windows.Forms.
II. Cc control c bn
1. Label ( )
a. Cng dng:
- Hin th chui k t khng thay i trn form (nhn).
b. To Label:
- Chn cng c
- R chut v v Label trn form.
c. Thuc tnh:
Thuc tnh M t
AutoSize iu chnh kch thc i tng cho va vi chiu di chui k t
Font
Name Quy nh font ch cho vn bn
Bold True: m / False: b m
Italic True: nghing / False: b nghing
Size Quy nh c ch cho vn bn
Underline True: gch di / False: b gch di
TextAlign Canh l (Left / Center / Right)
2. TextBox ( )
Lu hnh ni b Trang 18
a. Cng dng:
- Dng trnh by vn bn v cho php ngi dng c thay i ni dung vn bn.
- Cng dng chnh l cho ngi dng nhp vn bn.
b. To TextBox:
- Chn cng c
- R chut v v TextBox trn form.
c. Thuc tnh:
Thuc tnh M t
PasswordChar Quy nh k t hin th cho mt khu.
Multiline True: hin thanh cun / False: khng hin thanh cun
ScrollBars Thanh cun (None / Horizontal / Vertical / Both)
3. Button ( )
a. Cng dng:
- Dng thc thi lnh.
- Khi nhp chut ln button, chng trnh nhn c tn hiu Click v lnh c thi hnh.
b. To Button:
- Chn cng c
- R chut v v Button trn form.
c. Thuc tnh:
Thuc tnh M t
Text Nhp ni dung vo Button
4. CheckBox ( )
a. Cng dng:
- Cho php ngi dng chn hoc khng chn.
b. To CheckBox:
- Chn cng c
- R chut v v CheckBox trn form.
c. Thuc tnh:
Thuc tnh M t
Checked Khng c du check (False) / C du check (True)
V d 3.1:
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 3.1 nh sau:
* Yu cu:
- Nhp:
+ Username vo TextBox Tn ng nhp (Name: txtUser)
+ Password vo TextBox Mt khu (Name: txtPass)
Lu hnh ni b Trang 19
- Chn hoc khng chn CheckBox Ghi nh (Name: chkNho)
- Nhp button ng nhp th hin ra hp thng bo cha Tn ng nhp, Mt khu; V
Bn c ghi nh (nu chkNho c nh du chn).
- Nhp button Xa th xa trng TextBox Tn ng nhp v TextBox Mt khu, ng
thi di chuyn con tr vo txtUser.
- Nhp button Dng th dng chng trnh.
* Hng dn:
- Thit k Form nh yu cu, trong form c cc thuc tnh sau:
+ AutoSize: True
+ Font: Times New Roman
+ Size: 12
+ Text: Form ng Nhp
+ Icon: logo.ico
- Nhp p vo button ng nhp, thm on code sau:
string thongbao;
thongbao = "Tn ng nhp l: " ;
thongbao += this.txtUser.Text ;
thongbao += "\n\rMt khu l: " ;
thongbao += this.txtPass.Text;
if (this.chkNho.Checked==true) {
thongbao += "\n\rBn c ghi nh.";
}
MessageBox.Show(thongbao,"Thng bo");
- Nhp p vo button Xa, thm on code sau:
this.txtUser.Clear();
this.txtPass.Clear();
this.txtUser.Focus();
- Nhp p vo button Dng, thm on code sau:
Application.Exit();
+ C th thay button Xa bng button Reset vi on code nh sau:
this.txtUser.ResetText();
this.txtPass.ResetText();
this.txtUser.Focus();
* Phn B sung:
1. MessageBox.Show: hin hp thng bo
MessageBox.Show("Thng bo" , "Tiu ");
MessageBox.Show("Thng bo", "Tiu ", Buttons, Icon);
+ Buttons (nt lnh):
MessageBoxButtons.OK
MessageBoxButtons.OKCancel
MessageBoxButtons.YesNo
MessageBoxButtons.YesNoCancel
+ Icon (biu tng):
MessageBoxIcon.Information
MessageBoxIcon.Question
MessageBoxIcon.Warning
+ DialogResult (kt qu tr v):
DialogResult.Ok
Lu hnh ni b Trang 20
DialogResult.Yes
2. Dng chng trnh:
this.Close();
Application.Exit();
3. Event (s kin) l g?
- S kin l nhng phn ng ca i tng. Ni cch khc, s kin l nhng tn hiu pht
ra khi ngi dng thao tc trn i tng.
- Nh c event, ngi lp trnh s nhn c nhng tn hiu v x l nhng tn hiu
phn hi li cho ngi dng, to nn s nhp nhng cho chng trnh.
4. Bng trnh by cc s kin (Events) ca control
S kin M t
Click Gi n khi control b Click. Trong mt vi control, event ny cng xy
ra khi ngi dng nhn phm Enter.
DoubleClick Gi n khi control b Double-Click. Trong mt vi control, event ny
khng bo gi c gi. V d: control Button.
DragDrop Gi n khi vic Drag and Drop c hon tt.
DragEnter Gi n khi i tng va c Drag n bin ca control.
DragLeave Gi n khi i tng va c Drag ra ngoi bin ca control.
DragOver Gi n khi i tng c Drag bn trong control.
KeyDown Gi n khi va bm mt phm bt k t 1 control ang focus.
S kin ny lun c gi trc s kin KeyUp.
KeyPress Gi n khi va bm mt phm bt k t 1 control c focus.
S kin ny c gi sau s kin KeyUp.
KeyUp Gi n khi va bm mt phm bt k ri th ra t 1 control ang focus.
S kin ny lun c gi sau s kin KeyDown.
GotFocus Gi n khi control c focus.
LostFocus Gi n khi control b mt focus.
MouseDown Gi n khi con tr chut nm trn 1 control v nt chut c nhp
nhng cha th ra.
MouseMove Gi n khi con tr chut i qua 1 control.
MouseUp Gi n khi con tr chut nm trn 1 control v nt chut va c th.
Paint Gi n khi control c v.
Validated Gi n khi control focus, property CaucesValidation c t l true
v sau khi gi vic kim tra bng Validating.
Validating Gi n khi control mt focus, property CaucesValidation c t l
true.
V d 3.2:
* Ci tin Vi Du 3.1 cho button Dng nh sau:
- Khi nhp vo button Dng th xut hin hp thoi hi p c 2 button Ok, Cancel.
- Chng trnh ch dng khi nhp tip vo nt Ok.
* Hng dn: Sa li button Dng nh sau
DialogResult traloi;
traloi = MessageBox.Show("Chc khng?", "Tr li",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if ( traloi == DialogResult.OK) Application.Exit();
V d 3.3:
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 3.3 gm:
Lu hnh ni b Trang 21
- Form1: c thit k nh sau
Lu hnh ni b Trang 22
+ Size: 12
+ Text: ng nhp h thng
+ Icon: logo.ico
. ng nhp: Nhp p vo button btnDangnhap, g vo on code sau
if ((this.txtUser.Text=="teonv")&&(this.txtPass.Text=="123"))
this.Close();
else
{
MessageBox.Show("Khng ng tn ngi dng / mt
khu !!!","Thng bo");
this.txtUser.Focus();
}
. Thot: Nhp p vo button btnThoat, g vo on code sau
DialogResult traloi;
traloi = MessageBox.Show("Chc khng?", "Tr li",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if ( traloi == DialogResult.OK)
Application.Exit();
Bi tp
1. - Thit k form nh mu.
Lu hnh ni b Trang 23
(txtB, txtC, btnGiai, txtKQ)
- Thm vo button Dng, khi nhp vo button ny th dng chng trnh.
3. Vit chng trnh gii phng trnh bc hai: ax2 + bx + c = 0
4. Vit chng trnh nhp vo: h tn (txtHoTen), n (chkNu), im vn (txtVan), im
ton (txtToan), im ngoi ng (txtNN).
- Nhp vo nt Tnh (btnTinh) th in ra im thp nht (txtDTN), im kt qu (txtDKQ),
xp loi (txtXL). Bit rng:
+ im thp nht: txtDTN l im thp nht trong 3 im: vn, ton, ngoi ng.
+ im thm: DThem = 0.5 nu l n; DThem = 0 nu l nam.
+ im kt qu: txtKQ = txtVan * 2 + txtToan * 2 + txtNN + DThem
+ Xp loi theo tiu chun:
. Gii: nu txtKQ >= 40 v txtDTN >= 7
. Kh: nu txtKQ >=35 v txtDTN >= 6
. Trung bnh: nu txtKQ >= 25 v txtDTN >= 5
. Yu: cc trng hp cn li
- Nhp vo nt Xa (btnXoa) th xa ht cc ni dung trong cc TextBox.
- Thm vo button Dng, khi nhp vo button ny th dng chng trnh.
5. Vit chng trnh to mt ng dng gm:
- Form1: Mn hnh chnh c 5 button: Bi tp 1 (btnBT1), Bi tp 2 (btnBT2), Bi tp 3
(btnBT3), Bi tp 4 (btnBT4), Thot (btnThoat).
+ Khi nhp vo Button Bi Tp 1: m Form2
+ Khi nhp vo Button Bi Tp 2: m Form3
+ Khi nhp vo Button Bi Tp 3: m Form4
+ Khi nhp vo Button Bi Tp 4: m Form5
- Form2: thc hin bi tp 1. B sung Button Tr v ng Form2.
- Form3: thc hin bi tp 2. B sung Button Tr v ng Form3.
- Form4: thc hin bi tp 3. B sung Button Tr v ng Form4.
- Form5: thc hin bi tp 4. B sung Button Tr v ng Form5.
Lu hnh ni b Trang 24
Bi 4: (tip theo) XY DNG WINDOWS FORMS APPLICATION
5. ListBox ( )
a. Cng dng:
- Dng hin th mt danh sch cc la chn.
b. To ListBox:
- Chn cng c
- R chut v v ListBox trn form.
c. Thuc tnh:
Thuc tnh M t
Items Cc mc gi tr trong ListBox
SelectedItem Item c chn
Phng thc M t
Add("chui") Thm mt mc gi tr l "chui"
ToString() Tr v chui k t c chn
* Nhp gi tr vo ListBox: <Ten_ListBox>.Items.Add ("Chui") ;
* Ly gi tr trong ListBox: <Ten_ListBox>.SelectedItem.ToString() ;
V d 4.1:
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 4.1 nh sau:
* Yu cu:
- ListBox lstWeb (Lin kt website) cha cc gi tr:
+ Tui tr
+ Thanh nin
+ VNExpress
+ Dn tr
+ Cng an
- TextBox txtKQ (cha kt qu) trng.
- Nhp button btnOk (Ok) s hin trong txtKQ tn website c chn lstWeb.
- Nhp button btnReset (Reset) s xa trng txtKQ.
* Hng dn:
- Thit k Form nh yu cu, trong form c cc thuc tnh sau:
+ AutoSize: True
+ Font: Times New Roman
+ Size: 12
+ Text: FormWebLinks
- Nhp p vo button Ok ri thm on code sau:
this.txtKQ.Text = "Bn chn website ";
this.txtKQ.Text += this.lstWeb.SelectedItem.ToString();
Lu hnh ni b Trang 25
- Nhp p vo button Reset ri thm on code sau:
this.txtKQ.ResetText();
* Ci tin: Ta c th a cc gi tr ca lstWeb trong Form1_Load.
+ Thit k li form nh sau
* Yu cu:
Thc hin ging nh V d 4.1,
nhng thay ListBox bng ComboBox
cbWeb.
Lu hnh ni b Trang 26
7. RadioButton ( )
a. Cng dng:
- Dng chn mt trong cc la chn trong danh sch.
b. To RadioButton:
- Chn cng c
- R chut v v RadioButton trn form.
c. Thuc tnh:
Thuc tnh M t
Checked Khng c du chn (False) / C du chn (True)
8. GroupBox ( )
a. Cng dng:
- To ra mt nhm.
b. GroupBox:
- Chn cng c
- R chut v v GroupBox trn form.
c. Thuc tnh:
Thuc tnh M t
BackgroundImage Hnh nn
BackgroundImageLayout None / Tile / Center / Stretch / Zoom
V d 4.3:
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 4.3 nh sau:
* Yu cu:
- Nhp h v tn vo TextBox txtHoTen
- Chn kiu ch
+ Radio Button (rad1): ch thng
+ Radio Button (rad2): ch HOA
- Nhp vo Button Kt qu (btnKQ) s in h v tn bng kiu ch c chn trong
TextBox txtKQ.
- Nhp vo Button Xa (btnXoa) s xa trng txtHoTen, txtKQ, rad1 c chn v a
con tr vo TextBox txtHoTen.
* Hng dn:
- Thit k Form nh yu cu, trong form c cc thuc tnh sau:
+ AutoSize: True
+ Font: Times New Roman
Lu hnh ni b Trang 27
+ Size: 12
+ Text: i kiu ch
- Nhp p vo nt Kt qu ri thm on code sau:
string hoten=this.txtHoTen.Text.Trim();
if (this.rad1.Checked == true)
txtKQ.Text = hoten.ToLower();
if (this.rad2.Checked == true)
txtKQ.Text = hoten.ToUpper();
- Nhp p vo nt Xa ri thm on code sau:
this.txtHoTen.Clear();
this.txtKQ.Clear();
this.rad1.Checked = true;
this.txtHoTen.Focus();
* B sung:
- Nhp vo Button Dng (btnDung) s dng chng trnh: thit k v vit code sau
Application.Exit();
9. Timer ( )
a. Cng dng:
- Quy nh khong thi gian nh k thc hin mt cng vic.
b. To Timer:
- Chn cng c
- R chut v v Timer l control dng unvisible (n).
c. Thuc tnh:
Thuc tnh M t
Enabled Bt / tt ch hn thi gian
Interval Khong thi gian nh k
V d 4.4:
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 4.4 nh sau:
* Yu cu:
- To Timer1 c Enabled = false; Interval = 1000
- Khi to bin m i = 20
- Button Bt u (btnBatDau): dng bt ch hn thi gian.
- Button Dng (btnDung): dng dng chng trnh.
- Timer1: m ngc t 20 n 1 v xut ra dng ch Ht gi.
+ Xut gi tr bin m i ra Label lblDongHo.
+ Gim bin i xung 1 n v.
+ Khi bin m i < 0 th tt ch hn gi v xut Ht gi! ra Label lblDongHo.
* Hng dn:
- Thit k Form nh yu cu, trong form c cc thuc tnh sau:
Lu hnh ni b Trang 28
+ AutoSize: True
+ Font: Times New Roman
+ Size: 12
+ Text: ng h m ngc
- Khai bo bin m i: qua code, thm on code c kt qu nh sau:
public Form1()
{
InitializeComponent();
}
int i = 10;
- Nhp p vo nt Bt u ri thm on code sau:
this.timer1.Enabled = true;
- Nhp p vo nt Dng ri thm on code sau:
Application.Exit();
- Nhp p vo nt Timer1 (Timer1_Tick) ri thm on code sau:
this.lblDongHo.Text = i.ToString();
i--;
if (i < 0)
this.timer1.Enabled = false;
10. RichTextBox ( )
a. Cng dng:
- Dng nhp vn bn vi nh dng vn bn a dng.
b. To RichTextBox:
- Chn cng c
- R chut v v RichTextBox trn form.
c. Thuc tnh:
Thuc tnh M t
ReadOnly Khng cho son tho, ch c.
11. Panel ( )
a. Cng dng:
- Bng cha cc control hay mt nhm cc control.
b. To Panel:
- Chn cng c
- R chut v v Panel.
c. Thuc tnh:
Thuc tnh M t
AutoScroll T ng cun nu s control nm ngoi vng
BorderStyle None / FixedSingle / Fixed3D
12. PictureBox ( )
a. Cng dng:
- Khung cha hnh nh.
b. To PictureBox:
- Chn cng c
- R chut v v PictureBox.
c. Thuc tnh:
Thuc tnh M t
Lu hnh ni b Trang 29
Image Hnh cha trong PictureBox
13. ErrorProvider ( )
a. Cng dng:
- H tr thng bo li cho cc control khc.
- Thng c dng vi control input (v d: TextBox) rng buc vi 1 iu kin nhp
no .
b. To ErrorProvider:
- Chn cng c
- R chut v v ErrorProvider l control dng unvisible (n).
1. MenuStrip ( )
a. Cng dng:
- To menu.
b. To MenuStrip:
- Nhp p vo control .
- Nhp menu.
2. ToolStrip ( )
a. Cng dng:
- To ra toolbar.
b. To ToolStrip:
- Chn cng c
- Ko control ToolStrip vo trong form.
- Bm vo ToolStrip va to, ta c th to ra cc tool (cng c) nh: Label, TextBox,
Button, ComboBox, DropDownButton.
V d 4.5:
* To ng dngWindows Forms Application nh hnh.
* Hng dn: dng RichTextBox, MenuStrip v ToolStrip.
Lu hnh ni b Trang 30
IV. Common Dialog (Hp thoi dng chung)
1. FontDialog ( )
a. Cng dng:
- To ra hp thoi Font.
b. To FontDialog:
- Nhp p vo control
2. OpenFileDialog ( )
a. Cng dng:
- To ra hp thoi Open File.
b. To OpenFileDialog:
- Nhp p vo control
3. SaveFileDialog ( )
a. Cng dng:
- To ra hp thoi Save File.
b. To SaveFileDialog:
- Nhp p vo control
4. PrintPreviewDialog ( )
a. Cng dng:
- Xem trc khi in.
b. To SaveFileDialog:
- Nhp p vo control
5. PrintDialog ( )
a. Cng dng:
- To ra hp thoi Print File.
b. To PrintDialog:
- Nhp p vo control
6. FolderBrowserDialog ( )
a. Cng dng:
- To ra hp thoi Browser.
b. To FolderBrowserDialog:
- Nhp p vo control
Lu hnh ni b Trang 31
Bi tp
1. Vit chng trnh to dng ch xut hin ln lt tng k t, c ni dung nh sau:
* Hng dn:
S dng: timer, PictureBox, Button v 2 file hnh BFClose.ico, BFOpen.ico
3. Vit chng trnh nhp hai s nguyn dng n v m. Tnh theo yu cu chn nh sau:
Lu hnh ni b Trang 32
(txtN, txtM, rad1, rad2, txtKQ, btnTinh, btnXoa, btnThoat)
- Button Tnh (btnTinh): tnh ton v xut kt qu ra TextBox txtKQ.
- Button Xa: xa trng tt c cc TextBox, a con tr vo txtN.
- Button Thot: dng chng trnh.
-- oOo --
Lu hnh ni b Trang 33
Chng 3: ARRAY - STRING - EXCEPTION
Bi 5: ARRAY (MNG)
I. Mng 1 chiu
1. nh ngha
- Mng l mt tp hp c th t ca nhng i tng (objects), tt c cc i tng ny
c cng mt kiu d liu.
- Mng trong ngn ng C# s dng nhng phng thc v cc thuc tnh. Th hin ca
mng trong C# c th truy cp nhng phng thc v cc thuc tnh ca System.Array.
- Mt s cc thuc tnh v phng thc ca lp System.Array:
Thnh vin M t
Sort() Phng thc sp xp gi tr tng dn trong mng mt chiu
Reverse() Phng thc sp xp gi tr gim dn trong mng mt chiu
Length Thuc tnh chiu di ca mng
SetValue() Phng thc thit lp gi tr cho mt thnh phn xc nh trong mng
2. Khai bo mng:
<kiu d liu>[] <tn mng> ;
V d:
int[] myIntArray ;
To th hin ca mng: s dng t kha new
V d:
myIntArray = new int[5] ;
4. Gi tr mc nh:
- Khi chng ta to mt mng c kiu d liu gi tr, mi thnh phn s cha gi tr mc
nh ca kiu d liu.
V d:
Vi khai bo int myIntArray = new int[5] ; th:
- Mi thnh phn ca mng c thit lp gi tr l 0 (gi tr mc nh ca s nguyn).
- Nhng kiu tham chiu trong mt mng khng c khi to gi tr mc nh, chng
c khi to gi tr null.
* Yu cu
- Thit k form nh mu (lblKQ, btnIn, btnXoa, btnDung).
- Khai bo mng 1 chiu (a) gm 5 s nguyn t 1 n 5.
- Nhp vo button In mng (btnIn) s in ra label (lblKQ) cc gi tr trong mng.
- Nhp vo button Xa (btnXoa) s xa trng ni dung ca label (lblKQ).
- Nhp vo button Dng s dng chng trnh.
* Hng dn
- Thit k form nh yu cu.
- Khai bo mng: qua code, thm on code c kt qu nh sau:
public partial class Form1 : Form
{
// Khai bao mang 1 chieu gom 5 so nguyen tu 1 den 5
int[] a = { 1, 2, 3, 4, 5 };
}
- Nhp p vo button In mng, thm on code sau:
// Xuat cac phan tu trong mang ra man hinh
this.lblKQ.Text="Cc phn t trong mng l:\n\r";
for (int i=0; i < a.Length; i++) {
this.lblKQ.Text += a[i]+" ";
}
C th thay for bng foreach nh sau
foreach (int phantu in a){
this.lblKQ.Text += a[i]+" ";
}
- Nhp p vo button Xa, thm on code sau:
this.lblKQ.Text = "";
- Nhp p vo button Dng, thm on code sau:
Application.Exit();
Lu hnh ni b Trang 35
V d 5.2: (Mng 5 s nguyn)
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 5.2 nh sau:
* Yu cu
- Thit k form: btnNhap, txtNhap, btnTang, btnGiam, lblKQ, btnIn, btnXoa, btnDung.
- Khai bo mng 1 chiu (a) cha 5 s nguyn, s phn t hin c (sopt) l 0.
- Nhp s vo TextBox txtNhap, nhp vo button Nhp 1 phn t mng (btnNhap) cho
php a gi tr trong TextBox txtNhap vo mng. Khi mng 5 s nguyn th phi
thng bo Mng y v khng cho nhp na.
- Nhp vo button Sp tng (btnTang) s sp xp mng theo th t tng dn.
- Nhp vo button Sp gim (btnGiam) s sp xp mng theo th t gim dn.
- Nhp vo button In mng (btnIn) s in ra label (lblKQ) cc gi tr trong mng.
- Nhp vo button Xa (btnXoa) s xa trng ni dung ca label (lblKQ) ng thi khai
bo li s phn t hin c (sopt) ca mng l 0.
- Nhp vo button Dng s dng chng trnh.
* Hng dn
- Thit k form nh yu cu.
- Khai bo mng nh sau:
public partial class Form1 : Form
{
// Khai bao mang 1 chieu gom 5 so nguyen
int[] a = new int[5];
// Khai bao so phan tu hien co cua mang
int sopt = 0;
}
- Nhp p vo button Nhp 1 phn t mng, thm on code sau:
// Nhap mot phan tu cho mang
if (sopt == 5)
MessageBox.Show("Mng y!");
else
{
a[sopt] = Convert.ToInt32(this.txtNhap.Text);
sopt++;
this.txtNhap.ResetText();
this.txtNhap.Focus();
}
- Nhp p vo button Sp tng, thm on code sau:
// Sap xep mang giam
if (sopt == 0)
this.lblKQ.Text = "Mng rng!";
Lu hnh ni b Trang 36
else
Array.Sort(a, 0, sopt);
this.lblKQ.Text = " sp xp mng tng dn!";
- Nhp p vo button Sp gim, thm on code sau:
// Sap xep mang giam
if (sopt == 0)
this.lblKQ.Text = "Mng rng!";
else
Array.Reverse(a, 0, sopt);
this.lblKQ.Text = " sp xp mng gim dn!";
- Nhp p vo button Xa, thm on code sau:
this.lblKQ.Text = "";
sopt = 0;
this.txtNhap.Focus();
- Nhp p vo button In mng, thm on code sau:
// Xuat cac phan tu trong mang ra man hinh
if (sopt==0)
this.lblKQ.Text = "Mng rng!";
else
{
this.lblKQ.Text="Cc phn t trong mng l:\n\r";
for (int i = 0; i < sopt; i++)
this.lblKQ.Text += a[i] + " ";
}
- Nhp p vo button Dng, thm on code sau:
Application.Exit();
1. nh ngha
- Mng a chiu l mng m mi thnh phn l mt mng khc.
- Ngn ng C# h tr hai kiu mng a chiu l:
+ Mng a chiu cng kch thc.
+ Mng a chiu khc kch thc.
- Trong phm vi bi hc ny, ta ch kho st mng 2 chiu m thi.
Lu hnh ni b Trang 37
X l myRectangularArray[i,j];
}
}
V d 5.3:
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 5.3 nh sau:
* Yu cu
- Thit k form nh mu (lblKQ, btnIn, btnXoa, btnDung, btnNhap, btnSapXep).
- Khai bo mng 2 chiu gm 4 dng, 3 ct cha cc s nguyn.
- Nhp vo button Nhp mng nhp cc phn t cho mng (c gi tr = dng - ct).
- Nhp vo button Sp Xp s sp xp mng tng dn theo tng hng.
- Nhp vo button In mng (btnIn) s in ra label (lblKQ) cc gi tr trong mng.
- Nhp vo button Xa (btnXoa) s xa trng ni dung ca label (lblKQ).
- Nhp vo button Dng s dng chng trnh.
* Hng dn
- Thit k form nh yu cu.
- Khai bo mng: qua code, thm on code c kt qu nh sau:
public partial class Form1 : Form
{ // Khai bao 4 dong 3 cot
const int sodong = 4;
const int socot = 3;
// Khai bao mang 2 chieu gom 4 dong, 3 cot chua 12 so
nguyen
int[,] Array2 = new int[sodong,socot];
}
- Nhp p vo button Nhp mng, thm on code sau:
// Nhap cac phan tu cho mang
for (int i=0; i < sodong; i++)
for (int j=0; j< socot; j++)
Array2[i,j]= i-j;
- Nhp p vo button Sp xp, thm on code sau:
// Sap xep mang
int[] t = new int[sodong * socot];
for (int i = 0; i < sodong; i++)
{
for (int j = 0; j < socot; j++)
t[j] = Array2[i, j];
Array.Sort(t, 0, socot);
Lu hnh ni b Trang 38
for (int j = 0; j < socot; j++)
Array2[i, j]=t[j];
}
- Nhp p vo button In mng, thm on code sau:
// Xuat cac phan tu trong mang ra man hinh
this.lblKQ.Text = "Cc phn t trong mng l:\n\r";
for (int i = 0; i < sodong; i++)
{
for (int j = 0; j < socot; j++)
{
this.lblKQ.Text += Array2[i,j] + " ";
}
this.lblKQ.Text += "\n\r";
}
- Nhp p vo button Xa, thm on code sau:
this.lblKQ.Text = "";
- Nhp p vo button Dng, thm on code sau:
Application.Exit();
Bi tp
Khi to mt ng dng Windows Forms Application:
-- oOo --
Lu hnh ni b Trang 39
Bi 6: (tip theo) STRING (CHUI) EXCEPTION (NGOI L)
III. String (Chui)
1. To mt chui
a. Chui hng
string TenChuoi = "Chui" ;
V d:
string thongbao = "y l mt cu thng bo." ;
Ch : Ta c 2 khai bo chui sau l nh nhau
string chuoi = "Dong mot \n Dong hai";
string chuoi = @"Dong mot
Dong hai";
b. Chui dng phng thc ToString
V d:
int myInt = 9 ;
string intString = myInt.ToString();
3. V d 6.1
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 6.1 nh sau:
* Yu cu
- Thit k form gm: lblTieuDe, lbl1, txtS1, lbl2, txtS2, lbl3, lblKQ, v cc button (xem
hnh).
- Nhp vo button Compare: so snh 2 chui txtS1 v txtS2 (c phn bit ch HOA v
ch thng), kt qu xut trong lblKQ.
- Nhp vo button COMPARE: so snh 2 chui txtS1 v txtS2 (khng phn bit ch
HOA v ch thng), kt qu xut trong lblKQ.
- Nhp vo button Concat, ni 2 chui txtS1 v txtS2, kt qu xut trong lblKQ.
Lu hnh ni b Trang 40
- Nhp button IndexOf, cho bit v tr xut hin ca chui txtS2 trong chui txtS1. Nu
c txtS2 trong txtS1 th thay th txtS2 (trong txtS1) bng chui "CH NY". Xut kt qu
trong lblKQ.
- Nhp vo button Insert, chn chui txtS2 vo sau t u tin ca chui txtS1; v chn
chui txtS2 vo trc t sau cng ca chui txtS1. Xut kt qu trong lblKQ.
- Nhp vo button Substring, cho bit v tr xut hin ca chui "TRNH X L" trong
lblTieuDe. Nu c th xa chui ra khi lblTieuDe. Xut kt qu trong lblKQ.
- Nhp button Xa th xa trng: TextBox txtS1, TextBox txtS2, Label lblKQ ng thi
a con tr vo TextBox txtS1.
- Nhp button Dng th dng chng trnh.
* Hng dn
- Thit k form nh yu cu.
- Nhp p vo button Compare, thm vo on code:
string s1=this.txtS1.Text;
string s2=this.txtS2.Text;
// So snh hai chui vi nhau c phn bit ch thng v
ch hoa
int kq = string.Compare(s1,s2);
this.lblKQ.Text = "txtS1 ";
if (kq == -1)
this.lblKQ.Text += "<";
else if (kq == 0)
this.lblKQ.Text += "=";
else
this.lblKQ.Text += ">";
this.lblKQ.Text += " txtS2";
- Nhp p vo button COMPARE, thm vo on code:
Lu hnh ni b Trang 41
string s1=this.txtS1.Text;
string s2=this.txtS2.Text;
// So snh hai chui vi nhau khng phn bit ch thng
v ch hoa
int kq = string.Compare(s1,s2, true);
this.lblKQ.Text = "txtS1 ";
if (kq == -1)
this.lblKQ.Text += "<";
else if (kq == 0)
this.lblKQ.Text += "=";
else
this.lblKQ.Text += ">";
this.lblKQ.Text += " txtS2";
- Nhp p vo button Concat, thm vo on code:
string s1 = this.txtS1.Text;
string s2 = this.txtS2.Text;
// Ni chui
this.lblKQ.Text = string.Concat(s1,s2);
- Nhp p vo button IndexOf, thm vo on code:
string s1 = this.txtS1.Text;
string s2 = this.txtS2.Text;
// Ch ra v tr xut hin ca chui 2 trong chui 1
if (s1.IndexOf(s2) >= 0)
{
this.lblKQ.Text = "txtS2 xut hin trong txtS1 ti
v tr ";
this.lblKQ.Text += s1.IndexOf(s2);
this.lblKQ.Text += ".!";
// Thay th chui s="CH NY" vo v tr chui 2
trong chui 1
string s = "CH NY";
this.lblKQ.Text += "\n\rThay th txtS2 trong txtS1
bng chui CH NY,";
this.lblKQ.Text+= "\n\rKt qu:"+s1.Replace(s2, s);
}
else this.lblKQ.Text = "txtS2 khng xut hin trong
txtS1!";
- Nhp p vo button Insert, thm vo on code:
string s1 = this.txtS1.Text;
string s2 = this.txtS2.Text;
// Chn chui 2 vo sau t u tin ca chui 1
this.lblKQ.Text = "Chn txtS2 vo sau t u tin ca
txtS1:\n\r";
this.lblKQ.Text += s1.Insert(s1.IndexOf(" "), s2);
// Chn chui 2 vo trc t cui cng ca chui 1
this.lblKQ.Text += "\n\rChn txtS2 vo trc t cui cng
ca txtS1:\n\r ";
this.lblKQ.Text += s1.Insert(s1.LastIndexOf(" "), s2);
- Nhp p vo button Substring, thm vo on code:
Lu hnh ni b Trang 42
// Ch ra v tr xut hin ca s="TRNH X L" trong
lblTieuDe
string s="TRNH X L";
int ix;
ix = this.lblTieuDe.Text.IndexOf(s);
// Trch s t lblTieuDe v in vo lblKQ
if (ix >= 0)
{
this.lblKQ.Text = this.lblTieuDe.Text.Substring(ix,
s.Length);
this.lblKQ.Text += " xut hin trong tiu ti v
tr ";
this.lblKQ.Text += ix;
// Xa s ra khi lblTieuDe
this.lblKQ.Text += "\n\rTiu sau khi xa " + s;
this.lblKQ.Text += "\n\rKt qu l: ";
this.lblKQ.Text += this.lblTieuDe.Text.Remove(ix,
s.Length);
}
else this.lblKQ.Text = "Khng xut hin trong chui 1!";
- Nhp p vo button Xa, thm vo on code:
this.txtS1.ResetText();
this.txtS2.ResetText();
this.lblKQ.Text = "";
this.txtS1.Focus();
- Nhp p vo button Dng, thm vo on code:
Application.Exit();
4. V d 6.2
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 6.2 nh sau:
* Yu cu
- Thit k form gm: lbl1, txtHoTen, lbl2, lblKQ, v cc button (xem hnh).
Lu hnh ni b Trang 43
- Nhp vo button CountOfWord: m s t trong chui txtHoTen, kt qu xut trong
lblKQ.
- Nhp vo button Proper: i thnh ch Hoa u T cho chui txtHoTen, kt qu xut
trong lblKQ.
- Nhp vo button Left, ly ra t bn tri ca chui txtHoTen, kt qu xut trong lblKQ.
- Nhp vo button Right, ly ra t bn phi ca chui txtHoTen, kt qu xut trong
lblKQ.
- Nhp button Xa th xa trng: TextBox txtS1, TextBox txtS2, Label lblKQ ng thi
a con tr vo TextBox txtS1.
- Nhp button Dng th dng chng trnh.
* Hng dn
- Thit k form nh yu cu.
- Nhp p vo button CountOfWord, thm vo on code:
// m s t trong chui
// To ra hng k t khong trng
const char Space =' ';
// Gn gi tr cho chui
string s = hoten.Trim();
// Thc hin vic chia chui vo mng --> m t = di
mng
int cWord = s.Split(Space).Length;)
// Gi kt qu tr v
return cWord;
** Tham kho thm on code sau:
// m s t trong chui txtHoTen
int count=0;
string s=this.txtHoTen.Text.Trim();
for (int i = 0; i < s.Length-1; i++)
if ((s.Substring(i, 1)==" ") && (s.Substring(i + 1,
1)!=" "))
count++;
if (s.Length > 0) count++;
this.lblKQ.Text = "S t l: " + count;
- Nhp p vo button Proper, thm vo on code:
// i thnh ch Hoa u T trong chui txtHoTen
string s = this.txtHoTen.Text.Trim();
if (s.Length == 0)
this.lblKQ.Text = "Chui rng!";
else
{
this.lblKQ.Text = "Chui kt qu l: ";
this.lblKQ.Text += s.Substring(0,1).ToUpper();
for (int i = 1; i < s.Length; i++)
{
if ((s[i-1].ToString()==" "
)&&(s[i].ToString()!=" "))
{
string ss = s[i].ToString();
this.lblKQ.Text += ss.ToUpper();
Lu hnh ni b Trang 44
}
else this.lblKQ.Text += s[i].ToString();
}
}
- Nhp p vo button Left, thm vo on code:
// T u tin ca chui txtHoTen
string s = this.txtHoTen.Text.Trim();
if (s.Length == 0)
this.lblKQ.Text = "Chui rng!";
else
{
this.lblKQ.Text = "T u tin ca chui l: ";
this.lblKQ.Text += s.Substring(0, s.IndexOf(" "));
}
- Nhp p vo button Right, thm vo on code:
// T cui cng ca chui txtHoTen
string s = this.txtHoTen.Text.Trim();
if (s.Length == 0)
this.lblKQ.Text = "Chui rng!";
else
{
this.lblKQ.Text = "T u tin ca chui l: ";
this.lblKQ.Text += s.Substring(s.LastIndexOf(" ")+1,
s.Length-s.LastIndexOf(" ") - 1);
}
- Nhp p vo button Xa, thm vo on code:
this.txtHoTen.ResetText();
this.lblKQ.Text = "";
this.txtHoTen.Focus();
- Nhp p vo button Dng, thm vo on code:
Application.Exit();
1. Khi nim
- Exception c th c hiu l bt gi li vi nhng on m hp l khng tn hi
n chng trnh.
- Li c th do nguyn nhn t chnh ngi s dng; hoc c th do nhng vn khng
mong i khc nh: thiu b nh, thiu ti nguyn h thng .
- Mt trnh x l ngoi l l mt khi lnh chng trnh c thit k x l cc ngoi l
m chng trnh pht sinh.
- X l ngoi l c thc thi trong trong cu lnh catch.
- Cc cu lnh c kh nng xy ra ngoi l thc thi trong cu lnh try.
* Mt cch l tng, nu mt ngoi l c bt v c x l th chng trnh c th sa
cha c vn b li v tip tc thc hin hot ng. Thm ch nu chng trnh khng
tip tc, bng vic bt gi ngoi l chng ta cng c c hi in ra nhng thng ip c
ngha v kt thc chng trnh mt cch r rng.
2. V d 6.3
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 6.3 nh sau:
Lu hnh ni b Trang 45
* Yu cu
- Thit k form gm: lbl1, txtSo1, lbl2, txtSo2, lbl3, txtKQ v cc button (xem hnh).
- Nhp s vo 2 TextBox txtSo1 v TxtSo2.
- Nhp vo button Chia:
+ Nu txtSo1, txtSo2 khng phi l s; hoc nhp vo txtSo2 l 0 th bo li: Li ri!.
+ Nu txtSo1, txtSo2 l s th xut kt qu l txtSo1 / txtSo2 vo TextBox txtKQ.
- Nhp button Xa th xa trng: TextBox txtS1, TextBox txtS2, Label lblKQ ng thi
a con tr vo TextBox txtS1.
- Nhp buuton Dng th dng chng trnh.
* Hng dn
- Thit k form nh yu cu.
- Nhp p vo button Chia, thm vo on code:
// Xa trng TextBox txtKQ
txtKQ.ResetText();
// on code c xy ra ngoi l khi thc hin
try
{
int so1 = int.Parse(this.txtSo1.Text);
int so2 = int.Parse(this.txtSo2.Text);
this.txtKQ.Text += (float)so1 / so2;
}
// X l ngoi l
catch (Exception ex)
{
this.txtKQ.Text = "Li ri!";
}
Bi tp
1. Vit chng trnh nhp vo mt chui h v tn. In ra:
- di v s t ca chui h tn.
- Chui h v tn di dng ch thng.
- Chui h v tn di dng ch IN HOA.
- Chui h v tn di dng Hoa u T.
- Chui h v tn c loi b cc khong trng tha (u chui, cui chui, bn
trong chui).
2. Vit chng trnh gii phng trnh bc 1: bx + c = 0
Lu : c x l trng hp nhp vo b, c khng phi l s.
-- oOo --
Lu hnh ni b Trang 46
Chng 4: CLASS OBJECT METHOD
Bi 7: CLASS (LP) OBJECT (I TNG) METHOD (PHNG THC)
I. Khi nim
1. C php
[Thuc tnh] [B sung truy cp] class <Tn lp> [: Lp c s]
{
// Cc thuc tnh
<Thuc tnh>
// Cc phng thc
<Phng thc>
}
2. V d 7.1
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 7.1 nh sau:
* Yu cu
- Thit k form gm: lbl1, txtHoTen, lbl2, lblKQ, v cc button (xem hnh).
- To class Chuoi nh sau:
public class Chuoi
{
// Thuc tnh
...
// Phng thc
...
}
+ Trong phn thuc tnh, khai bo:
Lu hnh ni b Trang 47
string tenchuongtrinh = "Chng trnh x l h v tn!";
+ Trong phn phng thc, khai bo cc phng thc sau:
// Phng thc
public string In()
{
// In tn chng trnh
return tenchuongtrinh;
}
Lu hnh ni b Trang 48
// i thnh ch Hoa u T trong chui txtHoTen
// To ra hng k t khong trng
const char Space = ' ';
// Gn gi tr cho chui
string s = hoten.Trim();
// i chui
string kq = "Chui rng!";
if (s.Length == 0)
return kq;
else
{
kq = "";
string [] s1 = s.Split(Space);
foreach (string tu in s1) {
string ss = tu[0].ToString();
kq += ss.ToUpper();
kq += tu.Substring(1,tu.Length-1);
kq += " ";
}
return kq.Trim();
}
** Tham kho thm on code sau:
- S dng cc phng thc trn thc hin cc vic sau y (xut kt qu trong lblKQ):
+ Nhp vo button In Li gii thiu, s in li gii thiu.
+ Nhp button H Lt, tch ly h lt ca chui trong txtHoTen.
+ Nhp button Tn, tch ly tn ca chui trong txtHoTen.
+ Nhp button m t, m s t ca chui trong txtHoTen.
+ Nhp button Hoa u T, i thnh chui Hoa u T ca chui trong txtHoTen.
Lu hnh ni b Trang 49
- Nhp button Xa th xa trng: TextBox txtHoTen, Label lblKQ ng thi a con tr
vo TextBox txtHoTen.
- Nhp button Dng th dng chng trnh.
* Hng dn
- Thit k form nh yu cu.
- Khai bo class: qua code, thm on code c kt qu nh sau
public Form1()
{
InitializeComponent();
}
public class Chuoi
{
// Thuc tnh
... (1)
// Phng thc
... (2)
}
+ Trong phn (1), khai bo thuc tnh (xem bi)
+ Trong phn (2), khai bo phng thc (xem bi)
- Nhp p vo button In Li gii thiu, thm vo on code:
Chuoi s = new Chuoi();
this.lblKQ.Text = s.In();
- Nhp p vo button H lt, thm vo on code:
Chuoi s = new Chuoi();
this.lblKQ.Text="H lt: " + s.HoLot(this.txtHoTen.Text);
- Nhp p vo button Tn, thm vo on code:
Chuoi s = new Chuoi();
this.lblKQ.Text = "Tn l: " + s.Ten(this.txtHoTen.Text);
- Nhp p vo button m t, thm vo on code:
Chuoi s = new Chuoi();
this.lblKQ.Text = "Tng s t l: " ;
this.lblKQ.Text += s.CountOfWord(this.txtHoTen.Text);
- Nhp p vo button Hoa u T, thm vo on code:
Chuoi s = new Chuoi();
this.lblKQ.Text = "Kt qu l: " ;
this.lblKQ.Text += s.Proper(this.txtHoTen.Text);
- Nhp p vo button Xa, thm vo on code:
this.lblKQ.Text = "";
this.txtHoTen.ResetText();
this.txtHoTen.Focus();
- Nhp p vo button Dng, thm vo on code:
Application.Exit();
* B sung
- Nt button In Hoa: i thnh chui IN HOA ca chui trong txtHoTen .
- Nt button In Thng: i thnh chui in thng ca chui trong txtHoTen.
Lu hnh ni b Trang 50
Thuc tnh l nhng thng tin c th thay i c.
Lu hnh ni b Trang 51
{
int c = a ;
a=b;
b=c;
}
}
5. V d 7.2
* Khi to mt ng dng Windows Forms Application, lu vi tn l Vi Du 7.2 nh sau:
* Yu cu
- Thit k form gm: lbl1, txta, lbl2, txtb, v cc button (xem hnh).
- To cc class HoanDoi, trong class c hm HoanVi cho php hon v 2 gi tr s
nguyn.
- Nhp button Hon i s hon i 2 gi tr trong txta v txtb
- Nhp button Xa s xa trng 2 TextBox v a con tr vo txta.
- Nhp button Dng s dng chng trnh.
* Hng dn
- Thit k form nh yu cu.
- Khai bo class: qua code, thm on code c kt qu nh sau
public Form1()
{
InitializeComponent();
}
Lu hnh ni b Trang 52
- Nhp p vo button Xa, thm vo on code:
this.txta.ResetText();
this.txtb.ResetText();
this.txta.Focus();
- Nhp p vo button Dng, thm vo on code:
Application.Exit();
Bi tp
Khi to mt ng dng Windows Forms Application:
-- oOo --
Lu hnh ni b Trang 53
Chng 5: SQL SERVER 2008
Bi 8: SQL SERVER 2008
I. Tng quan v SQL
2. Vai tr ca SQL
- SQL khng phi l mt h qun tr c s d liu, do n khng th tn ti c lp.
- SQL l mt phn ca h qun tr c s d liu, n xut hin trong cc h qun tr c s
d liu vi vai tr ngn ng v l cng c giao tip gia ngi s dng v h qun tr c s
d liu.
- SQL c nhng vai tr nh sau:
SQL l ngn ng hi c tnh tng tc: Ngi s dng c th d dng thng qua cc
trnh tin ch gi cc yu cu di dng cc cu lnh SQL n c s d liu v nhn
kt qu tr v t c s d liu.
SQL l ngn ng lp trnh c s d liu: Cc lp trnh vin c th nhng cc cu lnh
SQL vo trong cc ngn ng lp trnh xy dng nn cc chng trnh ng dng giao
tip vi c s d liu.
SQL l ngn ng qun tr c s d liu: Thng qua SQL, ngi qun tr c s d liu
c th qun l c c s d liu, nh ngha cc cu trc lu tr d liu, iu khin
truy cp c s d liu, ...
SQL l ngn ng cho cc h thng khch/ch (client/server): Trong cc h thng c
s d liu khch/ch, SQL c s dng nh l cng c giao tip gia cc trnh ng
dng pha my khch vi my ch c s d liu.
SQL l ngn ng truy cp d liu trn Internet: Cho n nay, hu ht cc my ch
Web cng nh cc my ch trn Internet s dng SQL vi vai tr l ngn ng tng
tc vi d liu trong cc c s d liu.
SQL l ngn ng c s d liu phn tn: i vi cc h qun tr c s d liu phn
tn, mi mt h thng s dng SQL giao tip vi cc h thng khc trn mng, gi v
nhn cc yu cu truy xut d liu vi nhau.
Lu hnh ni b Trang 54
SQL l ngn ng s dng cho cc cng giao tip c s d liu: Trong mt h thng
mng my tnh vi nhiu h qun tr c s d liu khc nhau, SQL thng c s dng
nh l mt chun ngn ng giao tip gia cc h qun tr c s d liu.
2. Bng (Table)
Bng (table) bao gm cc yu t sau:
- Tn ca bng: c xc nh duy nht.
- Cu trc ca bng: tp hp cc ct (field/trng/thuc tnh).
- D liu ca bng: tp hp cc dng (record/bn ghi/b) hin c trong bng.
V d: Table DONVI
Lu hnh ni b Trang 55
(c kha chnh l MADONVI)
5. S lc v cu lnh SQL
Cu lnh Chc nng
Thao tc d liu
SELECT Truy xut d liu
INSERT B sung d liu
UPDATE Cp nht d liu
DELETE Xa d liu
TRUNCATE Xa ton b d liu trong bng
nh ngha d liu
CREATE TABLE To bng
DROP TABLE Xa bng
ALTER TABLE Sa cu trc bng
CREATE FUNCTION To hm (do ngi s dng nh ngha)
ALTER FUNCTION Sa i hm
DROP FUNCTION Xa hm
Lu hnh ni b Trang 56
CREATE TRIGGER To trigger
ALTER TRIGGER Sa trigger
DROP TRIGGER Xa trigger
7. Kiu d liu
Tn kiu M t
CHAR (n) Kiu chui vi di c nh
NCHAR (n) Kiu chui vi di c nh h tr UNICODE
VARCHAR (n) Kiu chui vi di chnh xc
NVARCHAR (n) Kiu chui vi di chnh xc h tr UNICODE
INTEGER S nguyn c gi tr t -231 n 231 1
INT Nh kiu Integer
TINYTINT S nguyn c gi tr t 0 n 255
SMALLINT S nguyn c gi tr t -215 n 215 1
BIGINT S nguyn c gi tr t -263 n 263 1
NUMERIC (p,s) Kiu s vi chnh xc c nh
DECIMAL (p,s) Tng t kiu Numeric
FLOAT S thc c gi tr t -1.79E+308 n 1.79E+308
REAL S thc c gi tr t -3.40E + 38 n 3.40E + 38
MONEY Kiu tin t
BIT Kiu bit (c gi tr 0 hoc 1)
DATETIME Kiu ngy gi (chnh xc n phn trm ca giy)
SMALLDATETIME Kiu ngy gi (chnh xc n pht)
BINARY D liu nh phn vi di c nh (ti a 8000 bytes)
VARBINARY D liu nh phn vi di chnh xc (ti a 8000 bytes)
IMAGE D liu nh phn vi di chnh xc (<= 2,147,483,647 bytes)
TEXT D liu kiu chui vi di ln (ti a 2,147,483,647 k t)
NTEXT D liu kiu chui vi di ln v h tr UNICODE (ti a
1,073,741,823 k t)
8. Ton t
Ton t ngha
a) Logic
AND / OR V / Hoc
b) So snh
= Bng
> Ln hn
< Nh hn
>= Ln hn hoc bng
Lu hnh ni b Trang 57
<= Nh hn hoc bng
<> Khc
!> Khng ln hn
!< Khng nh hn
c) Danh sch
IN Nm trong danh sch
NOT IN Khng nm trong danh sch
d) Gii hn d liu
BETWEEN Gi_tr BETWEEN a AND b ngha l (a Gi_tr b)
NOT BETWEEN Gi_tr NOT BETWEEN a AND b ngha l (Gi_tr < a) AND
(Gi_tr > b)
LIKE M t khun dng d liu cn tm kim c s dng k t i
din:
% Chui k t bt k
_ Mt k t bt k
[] K t bt k trong gii hn c ch nh
[^] K t bt k khng nm trong gii hn c ch nh
1. To bng
C php:
CREATE TABLE tn_bng
(
tn_ct thuc_tnh_ct cc_rng_buc
[ , ...
, tn_ct_n thuc_tnh_ct_n cc_rng_buc_ct_n ]
[ , cc_rng_buc_trn_bng ]
)
Trong :
tn_bng Tn ca bng cn to (<=128 k t)
tn_ct Tn ca ct (field / trng) cn nh ngha
thuc_tnh_ct Gm:
Kiu d liu ca ct (field).
Gi tr mc nh ca ct (filed).
IDENTITY - gi tr t ng tng, dng vi field kiu s.
NULL / NOT NULL
cc_rng_buc Cc rng buc c s dng trn mi ct (field) hoc trn bng.
V d 8.1:
Lu hnh ni b Trang 58
To bng NHANVIEN gm cc field MANV (m nhn vin), HOTEN (h v tn),
NGAYSINH (ngy sinh ca nhn vin), DIACHI (a ch ca nhn vin), HSLUONG (h s
lng), MADONVI (m n v).
* Hng dn:
CREATE TABLE nhanvien
(
manv NVARCHAR(10) NOT NULL,
hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL,
diachi NVARCHAR(100) NULL,
dienthoai NVARCHAR(10) NULL,
hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL
)
2. To rng buc
a. Rng buc CHECK:
- Ch nh iu kin hp l i vi d liu khi c s thay i d liu trn bng.
- Dng vi cc lnh INSERT, UPDATE.
C php:
[CONSTRAINT tn_rng_buc]
CHECK (iu_kin)
V d 8.2:
To bng NHANVIEN nh v d 8.1, trong :
- NGAYSINH < '1/1/1990'
- DIENTHOAI ca nhn vin l mt chui 6 ch s.
* Hng dn:
CREATE TABLE nhanvien
(
manv NVARCHAR(10) NOT NULL,
hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL
CONSTRAINT CK_nhanvien_ngaysinh
CHECK (ngaysinh < '1/1/1990'),
diachi NVARCHAR(100) NULL,
dienthoai NVARCHAR(10) NULL,
CONSTRAINT CK_nhanvien_dienthoai
CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____')
hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL
)
b. Rng buc PRIMARY KEY:
- Ch nh kho chnh ca bng.
C php:
[CONSTRAINT tn_rng_buc]
PRIMARY KEY [(danh_sch_ct)]
Lu :
Mi bng c nhiu nht mt rng buc PRIMARY KEY.
Mt kho chnh c th bao gm nhiu ct nhng khng vt qu 16 ct.
Lu hnh ni b Trang 59
V d 8.3:
To bng NHANVIEN nh v d 8.2, vi kho chnh l MANV
* Hng dn:
CREATE TABLE nhanvien
(
manv NVARCHAR(10) NOT NULL,
hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL
CONSTRAINT CK_nhanvien_ngaysinh
CHECK (ngaysinh < '1/1/1990'),
diachi NVARCHAR(100) NULL,
dienthoai NVARCHAR(10) NULL,
CONSTRAINT CK_nhanvien_dienthoai
CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____')
hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL,
CONSTRAINT PK_nhanvien_manv PRIMARY KEY
)
c. Rng buc UNIQUE:
- Ch nh kho ph cho bng.
C php:
[CONSTRAINT tn_rng_buc]
UNIQUE [(danh_sch_ct)]
V d 8.4:
To bng NHANVIEN nh v d 8.3, trong khng cho php cc nhn vin khc nhau
c trng in thoi vi nhau.
* Hng dn:
CREATE TABLE nhanvien
(
manv NVARCHAR(10) NOT NULL,
hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL
CONSTRAINT CK_nhanvien_ngaysinh
CHECK (ngaysinh < '1/1/1990'),
diachi NVARCHAR(100) NULL,
dienthoai NVARCHAR(10) NULL,
CONSTRAINT CK_nhanvien_dienthoai
CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____')
hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL,
CONSTRAINT PK_nhanvien_manv PRIMARY KEY,
CONSTRAINT UNIQUE_nhanvien_dienthoai UNIQUE(dienthoai)
)
d. Rng buc FOREIGN KEY (kha ngoi)
- Mt ct (hay mt tp cc ct) trong mt bng c gi l kho ngoi (rng buc
FOREIGN KEY) nu gi tr ca n c xc nh t kho chnh (PRIMARY KEY) hoc
kho ph (UNIQUE) ca mt bng d liu khc.
C php:
[CONSTRAINT tn_rng_buc]
Lu hnh ni b Trang 60
FOREIGN KEY [(danh_sch_ct)]
REFERENCES tn_bng_tham_chiu(danh_sch_ct_tham_chiu)
[ON DELETE CASCADE | NO ACTION | SET NULL | SET DEFAULT]
[ON UPDATE CASCADE | NO ACTION | SET NULL | SET DEFAULT]
Trong :
CASCADE: T ng xo (cp nht) nu bn ghi c tham chiu b xo (cp nht).
NO ACTION (Mc nh): Nu bn ghi trong bng tham chiu ang c tham chiu
bi mt bn ghi bt k trong bng c nh ngha th bn ghi khng c php
xo hoc cp nht (i vi ct c tham chiu).
SET NULL: Cp nht li kho ngoi ca bn ghi thnh gi tr NULL (nu ct cho
php nhn gi tr NULL).
SET DEFAULT: Cp nht li kho ngoi ca bn ghi nhn gi tr mc nh (nu ct
c qui nh gi tr mc nh).
V d 8.5:
To bng NHANVIEN nh v d 8.4, trong kho ngoi trn ct MADONVI (bng
DONVI). Gi s rng bng DONVI c nh ngha.
* Hng dn:
CREATE TABLE nhanvien
(
manv NVARCHAR(10) NOT NULL,
hoten NVARCHAR(50) NOT NULL,
ngaysinh DATE NULL
CONSTRAINT CK_nhanvien_ngaysinh
CHECK (ngaysinh < '1/1/1990'),
diachi NVARCHAR(100) NULL,
dienthoai NVARCHAR(10) NULL,
CONSTRAINT CK_nhanvien_dienthoai
CHECK (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____')
hsluong DECIMAL(3,2) DEFAULT (1.92)
madonvi NVARCHAR(10) NOT NULL,
CONSTRAINT PK_nhanvien_manv PRIMARY KEY,
CONSTRAINT UNIQUE_nhanvien_dienthoai UNIQUE(dienthoai) ,
CONSTRAINT FK_nhanvien_madonvi
FOREIGN KEY(madonvi)
REFERENCES donvi(madonvi)
ON DELETE CASCADE
ON UPDATE CASCADE
)
3. Sa cu trc bng
a. C php
ALTER TABLE tn_bng
ADD nh_ngha_ct |
ALTER COLUMN tn_ct kiu_d_liu [NULL | NOT NULL] |
DROP COLUMN tn_ct |
ADD CONSTRAINT tn_rng_buc nh_ngha_rng_buc |
DROP CONSTRAINT tn_rng_buc
b. V d 8.6
Lu hnh ni b Trang 61
B sung vo bng DONVI v d 8.5, ct GHICHU
* Hng dn:
ALTER TABLE nhanvien
ADD
ghichu NVARCHAR(50)
4. Xa bng
a. C php
DROP TABLE tn_bng
b. V d 8.7:
Xo bng DONVI ra khi CSDL.
Lu : Ct MADONVI trong bng DONVI ang c tham chiu bi kho ngoi
FK_nhanvien_madonvi trong bng NHANVIEN.
* Hng dn:
- Xo b rng buc FK_nhanvien_madonvi khi bng NHANVIEN
ALTER TABLE nhanvien
DROP CONSTRAINT FK_nhanvien_madonvi
- Xo bng DONVI:
DROP TABLE donvi
Thc hnh
1. Khi ng SQL SERVER 2008:
a. Start All programs Microsoft SQL Server 2008 SQL Server Management Studio
b. Chng thc: chn 1 trong 2 ch
v L ca Windows
v L ca SQL Server
c. Chn Connect
2. To database:
ca s Object Explorer, click chut phi vo Database sau chn New database
- Database nane: banhang
- Chn Ok
3. To cu trc table:
a. To table Nhanvien
Lu hnh ni b Trang 62
* ca s Object Explorer:
- Nhp du + trc database banhang (thnh du -)
- Click chut phi vo Table sau chn New table
- Khai bo cu trc: V d 8.1
- Lu: nhp
b. To table Donvi : t thc hin.
Lu hnh ni b Trang 63
6. Thm field GHICHU vo table DONVI
V d 8.6
* ca s hin th cu trc ca table Donvi
- Khai bo ( cui) thm field: ghichu, nvarchar(50), NULL
-- oOo --
Lu hnh ni b Trang 64
Bi 9: CC CU LNH TRUY VN
* Xt CSDL banhang gm cc table:
NHANVIEN, DONVI, MATHANG, NHATKYBANHANG
- Cu trc:
- D liu:
Bng NHANVIEN
Bng DONVI
Lu hnh ni b Trang 65
IV. Cc cu lnh truy vn
1. Cu lnh SELECT
Cng dng:
- Chn cc field t bng.
C php:
SELECT [ALL | DISTINCT][TOP n] danh_sch_chn
[INTO tn_bng_mi]
FROM danh_sch_bng [ | khung_nhn]
[WHERE iu_kin]
[GROUP BY danh_sch_ct]
[HAVING iu_kin]
[ORDER BY ct_sp_xp]
[COMPUTE danh_sch_hm_gp [BY danh_sch_ct]]
Ch : Cc thnh phn trong cu lnh SELECT phi c s dng theo ng th t trn.
c. Danh sch chn trong cu lnh SELECT
- Chn tt c cc field
V d 9.1a:
Cu lnh sau y cho bit thng tin ca cc nhn vin trong bng NHANVIEN.
SELECT * FROM nhanvien n1
- i tn cc ct trong kt qu
V d 9.1b:
Cu lnh sau y cho bit HOTEN (h tn) c i thnh H v Tn, DIACHI (a ch)
c i thnh a Ch ca cc nhn vin trong bng NHANVIEN.
SELECT 'H v Tn' = hoten, 'a Ch' = diachi
FROM nhanvien
Hoc:
SELECT hoten 'H v Tn', diachi 'a Ch'
FROM nhanvien
- S dng cu trc CASE i tn cc ct trong kt qu
V d 9.1c:
Cu lnh sau y cho bit HOTEN (h tn), HSLUONG (h s lng) v (xp loi lng)
ca cc nhn vin trong bng NHANVIEN theo HSLUONG (h s lng).
SELECT 'H v Tn'= hoten, 'H s lng' = hsluong, 'H s lng' =
CASE
WHEN hsluong = NULL THEN 'Khng xc nh'
WHEN hsluong <= 1.92 THEN 'Lng thp'
WHEN hsluong <= 3.11 THEN 'Lng trung bnh'
WHEN hsluong <= 5.2 THEN 'Lng cao'
ELSE 'Lng rt cao'
END
FROM nhanvien
- Thm chui k t trong kt qu
V d 9.1d:
Cu lnh sau y s cho thm chui 'H s lng l:' trc ct HSLUONG (h s
lng) trong tng dng kt qu.
SELECT 'H v Tn' = hoten, 'H s lng l:', 'H s lng' = hsluong
FROM nhanvien
- Tnh ton cc gi tr trong cu lnh SELECT
Lu hnh ni b Trang 66
V d 9.1e:
Cu lnh sau y s cho HOTEN (h tn) v LUONG (lng) ca nhn vin theo cng
thc LUONG = HSLUONG * 730000.
SELECT 'H v Tn' = hoten, 'Lng' = hsluong * 730000
FROM nhanvien
- T kha DISTINCT: dng loi b nhng dng d liu c kt qu ging nhau
V d 9.1f:
Cu lnh sau s cho cc gi tr hsluong khc nhau trong bng NHANVIEN
SELECT hsluong
FROM nhanvien
- To bng mi bng cu lnh SELECT INTO
V d 9.1g:
Cu lnh sau s to bng c tn NHANVIEN_LUU gm cc field HOTEN (h tn),
DIACHI (a ch) ca cc nhn vin c HSLUONG > 1.92 t bng NHANVIEN.
SELECT hoten, diachi
INTO nhanvien_luu
FROM nhanvien
WHERE hsluong > 1.92
- Sp xp kt qu (ASC: tng, DESC: gim) bng ORDER BY
V d 9.1h:
Cu lnh sau y s sp xp cc nhn vin theo th t gim dn ca HSLUONG (h s
lng), nu HSLUONG bng nhau th sp xp kt qu theo th t tng dn ca NGAYSINH
(ngy sinh)
SELECT hoten, ngaysinh, hsluong
FROM nhanvien
ORDER BY hsluong DESC, ngaysinh ASC
d. Xc nh bng bng mnh FROM
FROM danh_sch_bng [ | khung_nhn]
V d 9.1i:
Cu lnh sau y cho bit HOTEN (h tn), DIACHI (a ch) ca cc nhn vin bng
cch gn b danh (alias) cho bng NHANVIEN.
SELECT hoten, diachi
FROM nhanvien n1
e. t iu kin truy xut d liu bng mnh WHERE
WHERE iu_kin
iu_kin: s dng cc php ton sau
+ So snh: = , > , < , >= , <= , <> , !> , !<
+ Gii hn: BETWEEN AND , NOT BETWEEN AND
+ Danh sch: IN , NOT IN
+ Khun dng: LIKE , NOT LIKE
Vi cc k t i din: % , _ , [] , [^]
+ Cc gi tr cha bit: IS NULL , IS NOT NULL
+ Kt hp cc iu kin: AND , OR
V d 9.1j:
Cu lnh sau y cho bit HOTEN (h tn), DIACHI (a ch) v DIENTHOAI (in
thoi) ca cc nhn vin c HSLUONG (h s lng) ln hn 1.92
SELECT hoten, diachi
FROM nhanvien
WHERE hsluong > 1.92
Lu hnh ni b Trang 67
V d 9.1k:
Cu lnh sau y cho bit HOTEN (h tn), DIACHI (a ch) v DIENTHOAI (in
thoi) ca cc nhn vin c HSLUONG (h s lng) trong khong 1.92 n 3.11
SELECT hoten, diachi
FROM nhanvien
WHERE hsluong BETWEEN 1.92 AND 3.11
V d 9.1l:
Cu lnh sau y cho bit HOTEN (h tn), DIACHI (a ch) v DIENTHOAI (in
thoi) ca cc nhn vin c HSLUONG (h s lng) l 1.86, 1.92, 2.11
SELECT hoten, diachi
FROM nhanvien
WHERE hsluong IN (1.86, 1.92, 2.11)
* Hoc:
SELECT hoten, diachi
FROM nhanvien
WHERE hsluong = 1.86 OR hsluong = 1.92 OR hsluong = 2.11
V d 9.1m:
Cu lnh sau y cho bit thng tin ca nhn vin c tn l NAM.
SELECT *
FROM nhanvien
WHERE hoten LIKE '%NAM'
V d 9.1n:
Cu lnh sau y cho bit thng tin ca nhn vin khng c in thoi.
SELECT *
FROM nhanvien
WHERE dienthoai IS NULL
Lu hnh ni b Trang 68
INSERT INTO luong_nhanvien
SELECT manv, hoten, hsluong*730000 FROM nhanvien
4. Xa d liu DELETE
Cng dng:
- xa d liu trong bng.
C php:
DELETE FROM tn_bng
[FROM danh_sch_bng]
[WHERE iu_kin]
V d 9.4:
Cu lnh sau y xo khi bng NHANVIEN nhng nhn vin lm ti n v c
SODIENTHOAI (s in thoi) l '848484'
DELETE FROM nhanvien
FROM donvi
WHERE nhanvien.madonvi = donvi.madonvi AND donvi.dienthoai = '848484'
Lu hnh ni b Trang 69
Tng ng cu lnh
TRUNCATE TABLE luong_nhanvien
1. Hm ngy gi
a. Hm DATEADD
C php:
DATEADD(datepart, number, date)
Datepart: tham s ch nh thnh phn s c cng thm vo ngy date.
DatePart Vit tt
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
hour hh
minute mi, n
second ss, s
milisecond ms
Lu hnh ni b Trang 70
Year('6/15/2010') kt qu: 2010
2. Hm chui
a. Hm LEFT
C php:
LEFT(string, n)
Cng dng: Hm trch t chui string n k t tnh t bn tri.
b. Hm RIGHT
C php:
RIGHT(string, n)
Cng dng: Hm trch t chui string n k t tnh t bn phi.
c. Hm SUBSTRING
C php:
SUBSTRING(string, m, n)
Cng dng: Hm trch t chui string n k t tnh t k t th m.
d. Hm LTRIM
C php:
LTRIM(string)
Cng dng: Hm ct b khong trng tha bn tri chui string.
e. Hm RTRIM
C php:
RTRIM(string)
Cng dng: Hm ct b khong trng tha bn phi chui string.
f. Hm LEN
C php:
LEN(string)
Cng dng: Hm tr v di ca chui string.
Thc hnh
1. Khi ng SQL SERVER 2008:
a. Start All programs Microsoft SQL Server 2008 SQL Server Management Studio
b. Chng thc
c. Chn Connect
2. ca s Object Explorer, click phi chut ln banhang v chn lnh New Query
3. ca s query, thc hin cc cu lnh trong cc V d trn.
-- oOO --
Lu hnh ni b Trang 71
Chng 6: LP TRNH KT NI CSDL SQL SERVER 2008
Bi 10-11: LP TRNH KT NI C S D LIU
* Chun b:
- Tn my c s dng (SERVERNAME) l PC-PC
- Database c s dng (DATABASENAME) l QuanLyBanHang, gm c cc table:
+ Nhanvien + HoaDon
+ Sanpham + ChiTietHoaDon
+ Khachhang + ThanhPho
- Vi quan h (Relationship) nh sau:
I. To kt ni - Vn chuyn d liu
2. Khai bo mc class
// Chui kt ni
string strConnectionString = "Data
Source=SERVERNAME;Initial Catalog=DATABASENAME;Integrated
Security=True";
// i tng kt ni
SqlConnection conn = null;
// i tng a d liu vo DataTable dtTABLENAME
SqlDataAdapter daTABLENAME = null;
// i tng hin th d liu ln Form
DataTable dtTABLENAME = null;
Lu hnh ni b Trang 72
// Khi ng kt ni
conn = new SqlConnection(strConnectionString);
// Vn chuyn d liu ln DataTable dtTABLENAME
daTABLENAME = new SqlDataAdapter("SELECT * FROM
TABLENAME",conn);
dtTABLENAME = new DataTable();
daTABLENAME.Fill(dtTABLENAME);
(lstThanhPho, btnThoat)
* Yu cu:
. Khi Form load: a d liu t table ThanhPho ln ListBox (lstThanhPho), km by li.
. Nhp vo Button Thot: dng chng trnh (c hin hp thoi hi p trc khi dng).
* Hng dn:
- Thit k form nh yu cu.
- Khai bo namespace s dng:
using System.Data.SqlClient;
- mc class, khai bo:
// Chui kt ni
string strConnectionString = "Data Source=PC-PC;Initial
Catalog=QuanLyBanHang;Integrated Security=True";
// i tng kt ni
SqlConnection conn = null;
// i tng a d liu vo DataTable dtThanhPho
SqlDataAdapter daThanhPho = null;
// i tng hin th d liu ln Form
DataTable dtThanhPho = null;
Lu hnh ni b Trang 73
- Form load:
try
{
// Khi ng connection
conn = new SqlConnection(strConnectionString);
// Vn chuyn d liu ln DataTable dtThanhPho
daThanhPho = new SqlDataAdapter("SELECT * FROM
THANHPHO", conn);
dtThanhPho = new DataTable();
dtThanhPho.Clear();
daThanhPho.Fill(dtThanhPho);
// a d liu ln ListBox
this.lstThanhPho.DataSource = dtThanhPho;
this.lstThanhPho.DisplayMember = "TenThanhPho";
this.lstThanhPho.ValueMember = "ThanhPho";
}
catch (SqlException)
{
MessageBox.Show("Khng ly c ni dung trong table
THANHPHO. Li ri!!!");
}
- FormClosing:
// Gii phng ti nguyn
dtThanhPho.Dispose();
dtThanhPho = null;
// Hy kt ni
conn = null;
- Button Thot:
// Khai bo bin traloi
DialogResult traloi;
// Hin hp thoi hi p
traloi = MessageBox.Show("Chc khng?", "Tr li",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
// Kim tra c nhp chn nt Ok khng?
if (traloi == DialogResult.OK)Application.Exit();
2. a d liu ln DataGridView
V d 10.2: Thit k form nh sau
Lu hnh ni b Trang 74
(dgvKHACHHANG, btnThoat)
* Yu cu:
. Khi Form load: a d liu t table KhachHang ln DataGridView (dgvKHACHHANG),
c by li.
. Nhp vo Button Thot: dng chng trnh.
* Hng dn:
- Thit k form theo yu cu.
- DataGridView c thuc tnh:
+ Name: dgvKHACHHANG
+ Nhp phi chut ln DataGridView chn Edit Columns
+ Trong hp thoi Edit Columns, nhp Add m hp thoi Add column v cc
column (ct) theo danh sch sau:
Name Type Header text DataPropertyName Width Ghi ch
MaKH TextBox M KH MaKH 100 Frozen
TenCty TextBox Tn Cty TenCty 250
DiaChi TextBox a ch DiaChi 200
ThanhPho TextBox Thnh Ph ThanhPho 100
DienThoai TextBox Ngy Nhn Hng DienThoai 100
Trong :
TextBox: l DataGridViewTextBoxColumn
CheckBox: l DataGridViewCheckBoxColumn
ComboBox: l DataGridViewComboBoxColumn
Thuc tnh DataPropertyName, Width iu chnh trong hp thoi Edit
Column.
- Khai bo namespace s dng:
using System.Data.SqlClient;
- mc class, khai bo:
// Chui kt ni
string strConnectionString = "Data Source=PC-PC;Initial
Catalog=QuanLyBanHang;Integrated Security=True";
// i tng kt ni
SqlConnection conn = null;
// i tng a d liu vo DataTable dtKhachHang
SqlDataAdapter daKhachHang = null;
// i tng hin th d liu ln Form
Lu hnh ni b Trang 75
DataTable dtKhachHang = null;
- Form load:
try
{
// Khi ng connection
conn = new SqlConnection(strConnectionString);
// Vn chuyn d liu ln DataTable dtKhachHang
daKhachHang = new SqlDataAdapter("SELECT * FROM
KHACHHANG", conn);
dtKhachHang = new DataTable();
dtKhachHang.Clear();
daKhachHang.Fill(dtKhachHang);
// a d liu ln DataGridView
dgvKHACHHANG.DataSource = dtKhachHang;
}
catch (SqlException)
{
MessageBox.Show("Khng ly c ni dung trong table
KHACHHANG. Li ri!!!");
}
- FormClosing:
// Gii phng ti nguyn
dtKhachHang.Dispose();
dtKhachHang = null;
// Hy kt ni
conn = null;
- Button Thot:
// Khai bo bin traloi
DialogResult traloi;
// Hin hp thoi hi p
traloi = MessageBox.Show("Chc khng?", "Tr li",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
// Kim tra c nhp chn nt Ok khng?
if (traloi == DialogResult.OK)Application.Exit();
Lu hnh ni b Trang 76
* Hng dn:
- mc class, b sung on code v khai bo hm LoadData() nh sau:
// i tng a d liu vo DataTable dtThanhPho
SqlDataAdapter daThanhPho = null;
// i tng hin th d liu ln Form
DataTable dtThanhPho = null;
void LoadData()
{
try
{
// Khi ng connection
conn = new SqlConnection(strConnectionString);
// Vn chuyn d liu vo DataTable dtThanhPho
daThanhPho = new SqlDataAdapter("SELECT * FROM
THANHPHO", conn);
dtThanhPho = new DataTable();
dtThanhPho.Clear();
daThanhPho.Fill(dtThanhPho);
// a d liu ln ComboBox trong DataGridView
(dgvKHACHHANG.Columns["ThanhPho"] as
DataGridViewComboBoxColumn).DataSource = dtThanhPho;
(dgvKHACHHANG.Columns["ThanhPho"] as
DataGridViewComboBoxColumn).DisplayMember =
"TenThanhPho";
(dgvKHACHHANG.Columns["ThanhPho"] as
DataGridViewComboBoxColumn).ValueMember =
"ThanhPho";
// Vn chuyn d liu vo DataTable dtKhachHang
daKhachHang = new SqlDataAdapter("SELECT * FROM
KHACHHANG", conn);
dtKhachHang = new DataTable();
dtKhachHang.Clear();
daKhachHang.Fill(dtKhachHang);
// a d liu ln DataGridView
Lu hnh ni b Trang 77
dgvKHACHHANG.DataSource = dtKhachHang;
}
catch (SqlException)
{
MessageBox.Show("Khng ly c ni dung trong table
KHACHHANG. Li ri!!!");
}
}
- Form Load: b ni dung c, thay bng
LoadData();
- ReLoad: Nhp p vo Button ReLoad, vit on code nh sau
LoadData();
* Hng dn:
- Xa: Nhp p vo Button Xa, thc hin nh sau
// M kt ni
conn.Open();
try
{
// Thc hin lnh
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
// Ly th t record hin hnh
int r = dgvKHACHHANG.CurrentCell.RowIndex;
// Ly MaKH ca record hin hnh
string strMAKH =
dgvKHACHHANG.Rows[r].Cells[0].Value.ToString();
// Vit cu lnh SQL
cmd.CommandText = System.String.Concat("Delete From
KhachHang Where MaKH='" + strMAKH + "'");
cmd.CommandType = CommandType.Text;
// Thc hin cu lnh SQL
Lu hnh ni b Trang 78
cmd.ExecuteNonQuery();
// Cp nht li DataGridView
LoadData();
// Thng bo
MessageBox.Show(" xa xong!");
}
catch (SqlException)
{
MessageBox.Show("Khng xa c. Li ri!!!");
}
// ng kt ni
conn.Close();
Lu hnh ni b Trang 79
* Hng dn:
- Thit k b sung Panel vi 4 TextBox v 1 ComboBox, Panel c Enabled = false
- mc class, b sung khai bo bin nh sau:
// Khai bo bin kim tra vic Thm hay Sa d liu
bool Them;
- Hm LoadData(): b sung di hng
// a d liu ln DataGridView
dgvKHACHHANG.DataSource = dtKhachHang;
on code sau
// Xa trng cc i tng trong Panel
this.txtMaKH.ResetText();
this.txtTenCty.ResetText();
this.txtDiaChi.ResetText();
this.txtDienThoai.ResetText();
// Khng cho thao tc trn cc nt Lu / Hy
this.btnLuu.Enabled = false;
this.btnHuy.Enabled = false;
this.panel.Enabled = false;
// Cho thao tc trn cc nt Thm / Sa / Xa / Thot
this.btnThem.Enabled = true;
this.btnSua.Enabled = true;
this.btnXoa.Enabled = true;
this.btnThoat.Enabled = true;
- Thm: nhp p vo button Thm, b sung on code
// Kich hot bin Them
Them = true;
// Xa trng cc i tng trong Panel
this.txtMaKH.ResetText();
this.txtTenCty.ResetText();
this.txtDiaChi.ResetText();
Lu hnh ni b Trang 80
this.txtDienThoai.ResetText();
// Cho thao tc trn cc nt Lu / Hy / Panel
this.btnLuu.Enabled = true;
this.btnHuy.Enabled = true;
this.panel.Enabled = true;
// Khng cho thao tc trn cc nt Thm / Xa / Thot
this.btnThem.Enabled = false;
this.btnSua.Enabled = false;
this.btnXoa.Enabled = false;
this.btnThoat.Enabled = false;
// a d liu ln ComboBox
this.cbThanhPho.DataSource = dtThanhPho;
this.cbThanhPho.DisplayMember = "TenThanhPho";
this.cbThanhPho.ValueMember = "ThanhPho";
// a con tr n TextField txtMaKH
this.txtMaKH.Focus();
Lu hnh ni b Trang 81
this.txtTenCty.Text =
dgvKHACHHANG.Rows[r].Cells[1].Value.ToString();
this.txtDiaChi.Text =
dgvKHACHHANG.Rows[r].Cells[2].Value.ToString();
this.cbThanhPho.SelectedValue =
dgvKHACHHANG.Rows[r].Cells[3].Value.ToString();
this.txtDienThoai.Text =
dgvKHACHHANG.Rows[r].Cells[4].Value.ToString();
// Cho thao tc trn cc nt Lu / Hy / Panel
this.btnLuu.Enabled = true;
this.btnHuy.Enabled = true;
this.panel.Enabled = true;
// Khng cho thao tc trn cc nt Thm / Xa / Thot
this.btnThem.Enabled = false;
this.btnSua.Enabled = false;
this.btnXoa.Enabled = false;
this.btnThoat.Enabled = false;
// a con tr n TextField txtMaKH
this.txtMaKH.Focus();
Lu hnh ni b Trang 82
cmd.CommandType = CommandType.Text;
// Lnh Insert InTo
cmd.CommandText = System.String.Concat("Insert
Into KhachHang Values(" + "'" +
this.txtMaKH.Text.ToString() + "','" +
this.txtTenCty.Text.ToString() + "','" +
this.txtDiaChi.Text.ToString() + "','" +
this.cbThanhPho.SelectedValue.ToString() +
"','" + this.txtDienThoai.Text.ToString() +
"')");
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
// Load li d liu trn DataGridView
LoadData();
// Thng bo
MessageBox.Show(" thm xong!");
}
catch (SqlException)
{
MessageBox.Show("Khng thm c. Li ri!");
}
}
if (!Them)
{
try
{
// Thc hin lnh
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
// Th t dng hin hnh
int r = dgvKHACHHANG.CurrentCell.RowIndex;
// MaKH hin hnh
string strMAKH =
dgvKHACHHANG.Rows[r].Cells[0].Value.ToString();
// Cu lnh SQL
cmd.CommandText = System.String.Concat("Update
KhachHang Set TenCty='" +
this.txtTenCty.Text.ToString() + "', DiaChi='"
+ this.txtDiaChi.Text.ToString() + "',
ThanhPho='" +
this.cbThanhPho.SelectedValue.ToString() + "',
DienThoai='" +
this.txtDienThoai.Text.ToString() + "' Where
MaKH='" + strMAKH + "'");
// Cp nht
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
// Load li d liu trn DataGridView
Lu hnh ni b Trang 83
LoadData();
// Thng bo
MessageBox.Show(" sa xong!");
catch (SqlException)
{
MessageBox.Show("Khng sa c. Li ri!");
}
}
// ng kt ni
conn.Close();
- Hy: Nhp p vo button Hy, b sung on code
// Xa trng cc i tng trong Panel
this.txtMaKH.ResetText();
this.txtTenCty.ResetText();
this.txtDiaChi.ResetText();
this.txtDienThoai.ResetText();
// Cho thao tc trn cc nt Thm / Sa / Xa / Thot
this.btnThem.Enabled = true;
this.btnSua.Enabled = true;
this.btnXoa.Enabled = true;
this.btnThoat.Enabled = true;
// Khng cho thao tc trn cc nt Lu / Hy / Panel
this.btnLuu.Enabled = false;
this.btnHuy.Enabled = false;
this.panel.Enabled = false;
Bi Tp
1. Thit k form nh sau:
(cbSanpham, btnThoat)
* Yu cu:
. Form load: a d liu t table SanPham ln ComboBox (cbSanPham), km by li.
. Nhp vo Button Thot: dng chng trnh (c hin hp thoi hi / p).
2. a d liu ln DataGridView (nh II. 2) cho cc table: NhanVien, SanPham.
3. Thit k form (nh III) thc hin cc thao tc: Thm, Sa, Xa cho cc table: HoaDon,
ChiTietHoaDon. Lu : Cc field MaKH, MaNV, MaSP th hin di dng ComboBox.
-- oOo --
Lu hnh ni b Trang 84
Chng 7: XY DNG NG DNG
Bi 12-13-14-15: NG DNG QUN L BN HNG
I. Chun b:
- Tn my c s dng (SERVERNAME) l PC-PC (thay i cho ng my ang dng!)
- Database c s dng (DATABASENAME) l QuanLyBanHang, gm c cc table sau:
+ ThanhPho + Sanpham
+ Khachhang + Hoadon
+ Nhanvien + ChitietHoadon
- Vi quan h (Relationship) nh sau:
Lu hnh ni b Trang 85
* Yu cu:
Khi Form1 c thc hin s th hin mn hnh ng nhp h thng l Form2.
* Hng dn:
- mc class, khai bo hm frmLogin() nh sau:
Form frm = new Form2();
frm.ShowDialog();
- Form Load:
frmlogin();
Lu hnh ni b Trang 86
Cu 03: (Form1 H thng Menu)
Thm vo Form1, h thng menu nh sau
Lu hnh ni b Trang 87
* Hng dn: S dng MenuStrip
Cu 05:
a) (Form1 Menu Danh mc)
* Yu cu: Trn Form1, vit lnh cho menu danh mc nh sau
- Vit hm XemDanhMuc(int intDanhMuc) thc hin m Form3 v gnForm3.Text =
intDanhMuc.
- Khi chn menu Xem Danh mc \ <int> s thc hin gi hm XemDanhMuc(<int>),
vi <int> l gi tr tng ng vi danh mc c chn.
* Hng dn:
- mc class, khai bo hm XemDanhMuc(int intDanhMuc) nh sau:
// Hm xemm danh mc
void XemDanhMuc(int intDanhMuc)
{
Form frm = new Form3();
frm.Text = intDanhMuc.ToString();
frm.ShowDialog();
}
- Menu Xem Danh mc \ Danh mc Thnh Ph: Nhp p vo menu Xem Danh
mc \ Danh mc Thnh Ph, g vo on code sau:
XemDanhMuc(1);
- Menu Xem Danh mc \ Danh mc Khch Hng: Nhp p vo menu Xem Danh
mc \ Danh mc Khch Hng, g vo on code sau:
XemDanhMuc(2);
- Menu Xem Danh mc \ Danh mc Nhn Vin: Nhp p vo menu Xem Danh
mc \ Danh mc Nhn Vin, g vo on code sau:
XemDanhMuc(3);
- Menu Xem Danh mc \ Danh mc Sn Phm: Nhp p vo menu Xem Danh
mc \ Danh mc Sn Phm, g vo on code sau:
XemDanhMuc(4);
Lu hnh ni b Trang 88
- Menu Xem Danh mc \ Danh mc Ha n: Nhp p vo menu Xem Danh mc
\ Danh mc Ha n, g vo on code sau:
XemDanhMuc(5);
- Menu Xem Danh mc \ Danh mc Chi Tit Ha n: Nhp p vo menu Xem
Danh mc \ Danh mc Chi Tit Ha n, g vo on code sau:
XemDanhMuc(6);
b) (Form3) Thit k Form3 theo mu nh sau
Lu hnh ni b Trang 90
}
}
- Tr V: Nhp p vo button Tr V, thm vo on code sau
this.Close();
Lu hnh ni b Trang 91
// i tng a d liu vo DataTable dtThanhPho
SqlDataAdapter daThanhPho = null;
// i tng hin th d liu ln Form
DataTable dtThanhPho = null;
// Khai bo bin kim tra vic Thm hay Sa d liu
bool Them;
void LoadData()
{
try
{
// Khi ng connection
conn = new SqlConnection(strConnectionString);
// Vn chuyn d liu ln DataTable dtThanhPho
daThanhPho = new SqlDataAdapter("SELECT * FROM
THANHPHO", conn);
dtThanhPho = new DataTable();
dtThanhPho.Clear();
daThanhPho.Fill(dtThanhPho);
// a d liu ln DataGridView
dgvTHANHPHO.DataSource = dtThanhPho;
// Thay i rng ct
dgvTHANHPHO.AutoResizeColumns();
// Xa trng cc i tng trong Panel
this.txtThanhPho.ResetText();
this.txtTenThanhPho.ResetText();
// Khng cho thao tc trn cc nt Lu / Hy
this.btnLuu.Enabled = false;
this.btnHuyBo.Enabled = false;
this.panel.Enabled = false;
// Cho thao tc trn cc nt Thm / Sa / Xa /
Thot
this.btnThem.Enabled = true;
this.btnSua.Enabled = true;
this.btnXoa.Enabled = true;
this.btnTroVe.Enabled = true;
}
catch (SqlException)
{
MessageBox.Show("Khng ly c ni dung trong
table THANHPHO. Li ri!!!");
}
}
- Form Load:
LoadData();
- FormClosing:
// Gii phng ti nguyn
dtThanhPho.Dispose();
dtThanhPho = null;
Lu hnh ni b Trang 92
// Hy kt ni
conn = null;
- ReLoad: Nhp p vo button ReLoad, thm vo on code sau
LoadData();
- Tr V: Nhp p vo button Tr V, thm vo on code sau
this.Close();
- Thm: Nhp p vo button Thm, thm vo on code sau
// Kich hot bin Them
Them = true;
// Xa trng cc i tng trong Panel
this.txtThanhPho.ResetText();
this.txtTenThanhPho.ResetText();
// Cho thao tc trn cc nt Lu / Hy / Panel
this.btnLuu.Enabled = true;
this.btnHuyBo.Enabled = true;
this.panel.Enabled = true;
// Khng cho thao tc trn cc nt Thm / Xa / Thot
this.btnThem.Enabled = false;
this.btnSua.Enabled = false;
this.btnXoa.Enabled = false;
this.btnTroVe.Enabled = false;
// a con tr n TextField txtThanhPho
this.txtThanhPho.Focus();
- Sa: Nhp p vo button Sa, thm vo on code sau
// Kch hot bin Sa
Them = false;
// Cho php thao tc trn Panel
this.panel.Enabled = true;
// Th t dng hin hnh
int r = dgvTHANHPHO.CurrentCell.RowIndex;
// Chuyn thng tin ln panel
this.txtThanhPho.Text =
dgvTHANHPHO.Rows[r].Cells[0].Value.ToString();
this.txtTenThanhPho.Text =
dgvTHANHPHO.Rows[r].Cells[1].Value.ToString();
// Cho thao tc trn cc nt Lu / Hy / Panel
this.btnLuu.Enabled = true;
this.btnHuyBo.Enabled = true;
this.panel.Enabled = true;
// Khng cho thao tc trn cc nt Thm / Xa / Thot
this.btnThem.Enabled = false;
this.btnSua.Enabled = false;
this.btnXoa.Enabled = false;
this.btnTroVe.Enabled = false;
// a con tr n TextField txtMaKH
this.txtThanhPho.Focus();
- Xa: Nhp p vo button Xa, thm vo on code sau
// M kt ni
conn.Open();
Lu hnh ni b Trang 93
try
{
// Thc hin lnh
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
// Ly th t record hin hnh
int r = dgvTHANHPHO.CurrentCell.RowIndex;
// Ly MaKH ca record hin hnh
string strTHANHPHO =
dgvTHANHPHO.Rows[r].Cells[0].Value.ToString();
// Vit cu lnh SQL
cmd.CommandText = System.String.Concat("Delete From
ThanhPho Where ThanhPho='" + strTHANHPHO + "'");
cmd.CommandType = CommandType.Text;
// Thc hin cu lnh SQL
cmd.ExecuteNonQuery();
// Cp nht li DataGridView
LoadData();
// Thng bo
MessageBox.Show(" xa xong!");
}
catch (SqlException)
{
MessageBox.Show("Khng xa c. Li ri!");
}
// ng kt ni
conn.Close();
- Hy B: Nhp p vo button Hy B, thm vo on code sau
// Xa trng cc i tng trong Panel
this.txtThanhPho.ResetText();
this.txtTenThanhPho.ResetText();
// Cho thao tc trn cc nt Thm / Sa / Xa / Thot
this.btnThem.Enabled = true;
this.btnSua.Enabled = true;
this.btnXoa.Enabled = true;
this.btnTroVe.Enabled = true;
// Khng cho thao tc trn cc nt Lu / Hy / Panel
this.btnLuu.Enabled = false;
this.btnHuyBo.Enabled = false;
this.panel.Enabled = false;
- Lu: Nhp p vo button Lu, thm vo on code sau
// M kt ni
conn.Open();
// Thm d liu
if (Them)
{
try
{
Lu hnh ni b Trang 94
// Thc hin lnh
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
// Lnh Insert InTo
cmd.CommandText = System.String.Concat("Insert
Into ThanhPho Values(" + "'" +
this.txtThanhPho.Text.ToString() + "','" +
this.txtTenThanhPho.Text.ToString() + "')");
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
// Load li d liu trn DataGridView
LoadData();
// Thng bo
MessageBox.Show(" thm xong!");
}
catch (SqlException)
{
MessageBox.Show("Khng thm c. Li ri!");
}
}
if (!Them)
{
// Thc hin lnh
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
// Th t dng hin hnh
int r = dgvTHANHPHO.CurrentCell.RowIndex;
// MaKH hin hnh
string strTHANHPHO =
dgvTHANHPHO.Rows[r].Cells[0].Value.ToString();
// Cu lnh SQL
cmd.CommandText = System.String.Concat("Update
ThanhPho Set TenThanhPho='" +
this.txtTenThanhPho.Text.ToString() + "' Where
ThanhPho='" + strTHANHPHO + "'");
// Cp nht
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
// Load li d liu trn DataGridView
LoadData();
// Thng bo
MessageBox.Show(" sa xong!");
}
// ng kt ni
conn.Close();
Lu hnh ni b Trang 95
* Yu cu:
- Trn Form1: khi chn menu Qun l danh mc n \ Danh mc Khch Hng s m
Form5.
- Trn Form5: thit k nh sau
Lu hnh ni b Trang 96
Cu 10: (Form8 Menu Qun l danh mc n \ Danh mc Ha n)
* Yu cu:
- Trn Form1: khi chn menu Qun l danh mc n \ Danh mc Ha n s m
Form8.
- Trn Form8: thit k nh sau
Lu hnh ni b Trang 97
- Trn Form9: thit k nh sau
Cu 11: (Form10 Menu Qun l danh mc theo nhm \ Khch hng theo thnh ph)
* Yu cu:
- Trn Form1: khi chn menu Qun l danh mc theo nhm \ Khch hng theo Thnh
Ph s m Form10.
- Trn Form10: thit k nh sau
Cu 12: (Form11 Menu Qun l danh mc theo nhm \ Ha n theo Khch hng)
* Yu cu:
Lu hnh ni b Trang 98
- Trn Form1: khi chn menu Qun l danh mc theo nhm \ Ha n theo Khch
hng s m Form11.
- Trn Form11: thit k nh sau
Cu 14: (Form13 Menu Qun l danh mc theo nhm \ Ha n theo Nhn vin)
* Yu cu:
- Trn Form1: khi chn menu Qun l danh mc theo nhm \ Ha n theo Nhn vin
s m Form13.
- Trn Form13: thit k nh sau
t thc hin
Cu 15: (Form14 Menu Qun l danh mc theo nhm \ Chi tit ha n theo Ha
n)
* Yu cu:
- Trn Form1: khi chn menu Qun l danh mc theo nhm \ Chi tit ha n theo Ha
n s m Form14.
- Trn Form14: thit k nh sau
t thc hin
Lu hnh ni b Trang 99
-- Ht --