Professional Documents
Culture Documents
Giao Trinh Lap Trinh Wed Nhat Nghe 5qfxRRWo8I 20140211033115 65671 PDF
Giao Trinh Lap Trinh Wed Nhat Nghe 5qfxRRWo8I 20140211033115 65671 PDF
MC LC
Chng 1. C bn ngn ng C# ............................................................................................ 1
I. Gii thiu ngn ng C# 2008 ...................................................................................... 1
II. Mi trng lp trnh ..................................................................................................... 2
III. Bin, hng, ton t ....................................................................................................... 3
IV. Quy c lp trnh, ng dng Console Application trong Visual Studio 2008............. 5
V. Kiu d liu ................................................................................................................. 9
VI. Cu trc iu khin .................................................................................................... 10
VII. Cu trc lp ................................................................................................................ 12
Chng 2. Xy dng Windows Forms Application ........................................................... 15
I. S dng Visual Studio 2008 ...................................................................................... 15
II. Cc control c bn: Label, TextBox, Button, CheckBox, .................................... 18
III. Menu v ToolBar ....................................................................................................... 30
IV. Common Dialog......................................................................................................... 30
Chng 3. Array String Exception ............................................................................... 34
I. Mng 1 chiu ............................................................................................................. 34
II. Mng nhiu chiu....................................................................................................... 37
III. String .......................................................................................................................... 40
IV. Exception ................................................................................................................... 45
Chng 4. Class Object - Method .................................................................................... 47
I. Khi nim ................................................................................................................... 47
II. nh ngha lp (Class) ............................................................................................... 47
III. Phng thc (Method) ............................................................................................... 50
Chng 5. SQL Server 2008 ................................................................................................ 54
I. Tng quan v SQL ..................................................................................................... 54
II. Tng quan v CSDL quan h ..................................................................................... 55
III. Table (Bng) .............................................................................................................. 58
IV. Cu lnh truy vn ....................................................................................................... 66
V. Mt s hm thng dng trong SQL Server ............................................................. 70
Chng 6. Lp trnh kt ni CSDL SQL Server 2008 ...................................................... 72
I. To kt ni Vn chuyn d liu. ............................................................................ 72
II. S dng control .......................................................................................................... 73
III. Cc thao tc trn d liu: Thm - Sa - Xa vi ADO.NET ..................................... 78
Chng 7. Xy dng ng dng............................................................................................ 85
I. Chun b. .................................................................................................................... 85
II. S dng control .......................................................................................................... 85
III. S dng database ....................................................................................................... 88
Lu hnh ni b
Chng 1: C BN NGN NG C#
Bi 1: GII THIU C# 2008
I. Gii thiu C#
Ngn ng C# kh n gin, ch khong hn 80 t kha v hn mi my kiu d liu
c dng sn. Tuy nhin, ngn ng C# c ngha to ln khi n thc thi nhng khi nim
lp trnh hin i. C# bao gm tt c nhng h tr cho cu trc, thnh phn component, lp
trnh hng i tng. Nhng tnh cht hin din trong mt ngn ng lp trnh hin i.
Hn na ngn ng C# c xy dng trn nn tng hai ngn ng mnh nht l C++ v Java.
Tm li, C# c cc c trng sau y:
- C# l ngn ng n gin
- C# l ngn ng hin i
- C# l ngn ng hng i tng
- C# l ngn ng mnh m v mm do
- C# l ngn ng hng module
- C# s tr nn ph bin
1. C# l ngn ng n gin
- C# loi b c mt vi s phc tp v ri rm ca cc ngn ng C++ v Java.
- C# kh ging C / C++ v din mo, c php, biu thc, ton t.
- Cc chc nng ca C# c ly trc tip t ngn ng C / C++ nhng c ci tin
lm cho ngn ng n gin hn.
2. C# l ngn ng hin i
C# c c nhng c tnh ca ngn ng hin i nh:
- X l ngoi l
- Thu gom b nh t ng
- C nhng kiu d liu m rng
- Bo mt m ngun
3. C# l ngn ng hng i tng
C# h tr tt c nhng c tnh ca ngn ng hng i tng l:
- S ng gi (encapsulation)
- S k tha (inheritance)
- a hnh (polymorphism)
4. C# l ngn ng mnh m v mm do
- Vi ngn ng C#, chng ta ch b gii hn chnh bn thn ca chng ta. Ngn ng ny
khng t ra nhng rng buc ln nhng vic c th lm.
- C# c s dng cho nhiu d n khc nhau nh: to ra ng dng x l vn bn, ng
dng ha, x l bng tnh; thm ch to ra nhng trnh bin dch cho cc ngn ng khc.
- C# l ngn ng s dng gii hn nhng t kha. Phn ln cc t kha dng m t
thng tin, nhng khng g th m C# km phn mnh m. Chng ta c th tm thy rng ngn
ng ny c th c s dng lm bt c nhim v no.
5. C# l ngn ng hng module
- M ngun ca C# c vit trong Class (lp). Nhng Class ny cha cc Method
(phng thc) thnh vin ca n.
- Class (lp) v cc Method (phng thc) thnh vin ca n c th c s dng li
trong nhng ng dng hay chng trnh khc.
6. C# s tr nn ph bin
Lu hnh ni b
Trang 1
Lu hnh ni b
Trang 2
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.
a)
b)
c)
d)
e)
f)
g)
Ton t
Ton t ton hc: + , - , * , / , %
Ton t tng / gim: += , -= , *= , /= , %=
Ton t tng / gim 1 n v: ++ , -Ton t gn: =
Ton t quan h: == , != , > , >= , < , <=
Ton t logic: ! , && , ||
Ton t 3 ngi: (iu_Kin) ? (Biu_Thc_1) : (Biu_Thc_2) ;
Lu hnh ni b
Trang 4
Trang 5
Trang 6
struct
as
explicit
null
switch
base
extern
object
this
bool
false
operator
throw
break
finally
out
true
byte
fixed
override
try
case
float
params
typeof
catch
for
private
unit
Char
foreach
protected
ulong
checked
goto
public
unchecked
Class
if
readonly
unsafe
Const
implicit
ref
ushort
continue
in
return
using
decimal
interface
sbyte
virtual
default
internal
sealed
volatile
delegate
is
short
void
do
lock
sizeof
while
double
long
stackalloc
else
namespace
static
enum
string
from
get
group
into
join
let
orderby
partial (type)
partial (method)
select
set
value
yield
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
C# chia kiu d liu thnh hai tp hp kiu d liu chnh:
- Kiu xy dng sn (built-in): do ngn ng cung cp cho ngi lp trnh.
- Kiu do ngi dng nh ngha (user-defined): do ngi lp trnh to ra.
1. Kiu d liu dng sn
Kiu C#
byte
char
bool
sbyte
short
ushort
int
S byte
1
2
1
1
2
2
4
Kiu .NET
Byte
Char
Boolean
Sbyte
Int16
Uint16
Int32
uint
float
4
4
Uint32
Single
double
Double
decimal
Decimal
long
Int64
ulong
Uint64
M t
S nguyn dng khng du t 0 n 255
K t Unicode
Gi tr logic true / false
S nguyn c du t -128 n 127
S nguyn c du t -32768 n 32767
S nguyn dng khng du t 0 n 65535
S nguyn c du t -2.147.483.647 n
2.147.483.647
S nguyn khng du t 0 n 4.294.967.295
Kiu du chm ng, gi tr xp x t
-3.4E-38 n 3.4E+38, vi 7 ch s c ngha
Kiu du chm ng c chnh xc gp
i, gi tr xp x t -1.7E-308 n
1.7E+308, vi 15, 16 ch s c ngha
C chnh xc n 28 con s v gi tr thp
phn, c dng trong tnh ton ti chnh,
kiu ny i hi phi c hu t m hay M
Kiu s nguyn c du c gi tr trong
khong -9.223.370.036.854.775.808 n
9.223.372.036.854.775.807
S nguyn khng du t 0 n
0xfffffffffffffff
ngha
Du nhy n
Du nhy kp
Du cho
K t null
Alert
Backspace
Sang trang form feed
Dng mi
u dng
Tab ngang
Tab dc
Trang 9
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
b) S2 = 1 +
1 1
1
+ + ... +
2 3
n
Lu hnh ni b
Trang 14
Trang 15
* Cc thao tc vi Form
a. Thm mt Form mi vo Project:
Lu hnh ni b
Trang 16
BackColor
Bottom
Dock
Enabled
Lu hnh ni b
M t
C 4 hng c nh ngha l: top, bottom, left, right c nh (neo).
Khi control cha n thay i kch thc th n s b thay i kch thc
nu nu cc hng left / right / top / bottom b c nh (neo).
Mu nn ca control.
L khong cch theo chiu dc t cnh y ca control n cnh trn
ca control cha n.
Ging nh Anchor nhng vic c nh (neo) ny theo mt cnh no
ca control (hoc c 4 cnh) vi control cha n.
Control c php tng tc (True) hay khng c php tng tc
(False)) vi ngi dng.
Trang 17
ForeColor
Height
Left
Name
Parent
Right
TabIndex
TabStop
Tag
Text
Top
Visible
Width
Mu ch ca control.
L chiu cao ca control tnh t cnh trn ca control n cnh di ca
control.
L khong cch theo chiu ngang t cnh tri ca control n cnh tri
ca control cha n.
Tn ca control.
Ch n control cha control hin hnh.
L khong cch theo chiu ngang t cnh phi ca control n cnh tri
ca control cha n.
Th t focus khi nhn phm Tab (trn bn phm) ca control so vi cc
control khc cng nm trong control cha n.
Ch nh control c c php bt (True) / khng c php bt
(False) phm Tab. Nu khng c php th TabIndex cng khng dng
c.
L nhn phn bit gia cc control ging nhau trong cng form.
Ni dung hin trong control.
L khong cch theo chiu dc t cnh trn ca control n cnh trn
ca control cha n.
Cho php control hin (True) / khng hin (False) khi chy ng dng.
L chiu rng ca control tnh t cnh tri ca control n cnh phi ca
control.
M t
Xa ni dung
Xa ni dung Text
Ct b khong trng tha hai bn chui
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
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
Click
M t
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
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
Lu hnh ni b
Trang 24
* 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
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
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).
III. Menu v ToolBar
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
- 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
Lu hnh ni b
Trang 33
Trang 34
* 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
* 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();
II. Mng nhiu chiu
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.
2. Khai bo mng 2 chiu
<kiu d liu>[ , ] <tn mng>
V d:
int[ , ] myRectangularArray ;
3. Khi to thnh phn ca mng
int[] myRectangularArray = new int[sodong , socot] ;
4. Duyt mng 2 chiu
for (int i = 0; i < sodong; i++)
{
for (int j = 0; j < socot; j++)
{
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
Bi tp
Khi to mt ng dng Windows Forms Application:
1. Khai bo 1 mng nguyn 1 chiu ti a 10 phn t. Vit chng trnh:
- Nhp vo gi tr cho 1 phn t trong mng.
- In gi tr ca cc phn t trong mng.
- In gi tr ln nht, gi tr nh nht ca cc phn t trong mng.
- In tng s cc gi tr, trung bnh cng cc gi tr ca cc phn t trong mng.
2. Khai bo 1 mng nguyn 2 chiu 4 dng, 5 ct. Vit chng trnh:
- Nhp gi tr cho cc phn t trong mng (gi tr = s th t dng + s th t ct).
- In gi tr cc phn t trong mng.
- In gi tr ln nht, gi tr nh nht ca cc phn t trong mng.
- In tng s cc gi tr, trung bnh cng cc gi tr ca cc phn t trong mng.
-- oOo --
Lu hnh ni b
Trang 39
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
* Yu cu
- Thit k form gm: lbl1, txtHoTen, lbl2, lblKQ, v cc button (xem hnh).
Lu hnh ni b
Trang 43
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();
IV. Exception (Ngoi l)
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
* 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
Trang 48
Lu hnh ni b
Trang 49
Trang 50
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();
}
public class HoanDoi
{
public void HoanVi(ref int a,ref int b)
{
int c = a ;
a = b ;
b = c ;
}
}
- Nhp p vo button Hon i, thm vo on code:
int a = int.Parse(this.txta.Text);
int b = int.Parse(this.txtb.Text);
HoanDoi s = new HoanDoi();
s.HoanVi(ref a, ref b);
this.txta.Text = a.ToString();
this.txtb.Text = b.ToString();
Lu hnh ni b
Trang 52
Bi tp
Khi to mt ng dng Windows Forms Application:
1. To mt class c tn l BAI_TAP_CLASS, c cc hm:
- Hm TEN nhn vo mt chui ch h v tn, gi tr tr li ca hm l chui ch tn.
- Hm NGTO nhn vo mt s nguyn n, gi tr tr li ca hm l true nu n l s nguyn
t; l false nu n khng l s nguyn t.
2. Thit k form c:
- TextBox txtHoTen: nhp h v tn.
- TextBox txtn: nhp s nguyn n.
- TextBox txtKQ: xut kt qu.
- Button btnTEN: gi hm TEN x l chui h v tn, xut kt qu vo txtKQ.
- Button btnNGTO: gi hm NGTO x l s nguyn n, xut kt qu vo txtKQ.
- Button btnXoa: xa trng tt c cc TextBox v a con tr vo txtHoTen
- Button btnDung: dng chng trnh.
-- oOo --
Lu hnh ni b
Trang 53
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.
II. Tng quan v c s d liu (CSDL) quan h
1. M hnh d liu quan h
- CSDL quan h l mt CSDL trong tt c d liu c t chc trong cc bng (table)
c mi quan h vi nhau. Mi bng (table) bao gm cc dng (record/bn ghi/b) v cc ct
(field/trng/thuc tnh).
- Tm li, mt CSDL bao gm nhiu bng (table) c mi quan h vi nhau (relationship).
V d:
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
Trang 55
Trang 56
CREATE TRIGGER
ALTER TRIGGER
DROP TRIGGER
To trigger
Sa trigger
Xa trigger
8. Ton t
Ton t
a) Logic
AND / OR
b) So snh
=
>
<
>=
Lu hnh ni b
M t
Kiu chui vi di c nh
Kiu chui vi di c nh h tr UNICODE
Kiu chui vi di chnh xc
Kiu chui vi di chnh xc h tr UNICODE
S nguyn c gi tr t -231 n 231 1
Nh kiu Integer
S nguyn c gi tr t 0 n 255
S nguyn c gi tr t -215 n 215 1
S nguyn c gi tr t -263 n 263 1
Kiu s vi chnh xc c nh
Tng t kiu Numeric
S thc c gi tr t -1.79E+308 n 1.79E+308
S thc c gi tr t -3.40E + 38 n 3.40E + 38
Kiu tin t
Kiu bit (c gi tr 0 hoc 1)
Kiu ngy gi (chnh xc n phn trm ca giy)
Kiu ngy gi (chnh xc n pht)
D liu nh phn vi di c nh (ti a 8000 bytes)
D liu nh phn vi di chnh xc (ti a 8000 bytes)
D liu nh phn vi di chnh xc (<= 2,147,483,647 bytes)
D liu kiu chui vi di ln (ti a 2,147,483,647 k t)
D liu kiu chui vi di ln v h tr UNICODE (ti a
1,073,741,823 k t)
ngha
V / Hoc
Bng
Ln hn
Nh hn
Ln hn hoc bng
Trang 57
<=
<>
!>
!<
c) Danh sch
IN
NOT IN
d) Gii hn d liu
BETWEEN
NOT BETWEEN
LIKE
Nh hn hoc bng
Khc
Khng ln hn
Khng nh hn
Nm trong danh sch
Khng nm trong danh sch
Gi_tr BETWEEN a AND b ngha l (a Gi_tr b)
Gi_tr NOT BETWEEN a AND b ngha l (Gi_tr < a) AND
(Gi_tr > b)
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
Trang 58
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
Trang 61
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.
4. To rng buc cho table
* Chn table Nhanvien
a. Rng buc CHECK
V d 8.2
* ca s hin th cu trc ca table Nhanvien
- Click chut phi vo field ngaysinh, chn CheckConstraints
- Nhp Add
+ (Name): g CK_nhanvien_ngaysinh
Expression: g ([ngaysinh] < '1/1/1990')
- Nhp Add (ln 2)
+ (Name): g CK_nhanvien_dienthoai
+ Expression: g (dienthoai LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]____')
- Nhp Close
* Chn table Donvi: t thc hin cho field dienthoai.
b. Rng buc PRIMARY KEY
* Chn table Nhanvien
V d 8.3
* ca s hin th cu trc ca table Nhanvien
- Click phi chut vo field manv v chn Set Primary Key
* Cho table Donvi: t thc hin cho field madonvi .
c. Rng buc UNIQUE
* Chn table Nhanvien
V d 8.4
* ca s hin th cu trc ca table Nhanvien
- Click phi chut vo field dienthoai v chn Indexes / Keys
- Nhp Add
+ (Name): g UNIQUE_nhanvien_dienthoai
+ Columns: dienthoai (ASC)
+ Type: Unique Key
- Nhp Close
5. To quan h (relationship) cho cc table: Donvi, Nhanvien
V d 8.5
* ca s Object Explorer
- Click chut phi vo Database Diagrams sau chn New database Diagram
- Chn cc table tham gia to quan h, nhp Close.
- R field madonvi (t table nhanvien) th vo field madonvi (ca table donvi).
- Khai bo:
Primary key table
Foreign key table
Donvi
Nhanvien
madonvi
madonvi
Lu hnh ni b
Trang 63
-- 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
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
2. Thm d liu INSERT
Cng dng:
- Thm dng d liu (mu tin/record) vo bng.
C php:
INSERT INTO tn_bng
[(danh_sch_ct)] VALUES(danh_sch_tr)
V d 9.2a:
Cu lnh sau y thm mt dng d liu vo bng DONVI
INSERT INTO donvi
VALUES('06', 'Phng CTCT-HSSV', '821460')
V d 9.2b:
Cu lnh sau y thm mt dng d liu vo bng NHANVIEN
INSERT INTO nhanvien
VALUES('NV02003', 'L Th Mai', '23/05/1972', NULL, '523312', 1.92, '02')
V d 9.2c:
Cu lnh sau y thm mt dng d liu vo bng NHANVIEN nhng ch in d liu
vo mt s ct.
INSERT INTO nhanvien(manv, hoten, diachi, madonvi)
VALUES('NV05002', 'Nguyn Th Hnh Dung', '56 Trn Ph', '05')
V d 9.2d: Thm d liu vo bng vi d liu ly t bng khc
Cu lnh sau y thm d liu vo bng LUONG_NHANVIEN vi d liu ly t bng
NHANVIEN.
Lu hnh ni b
Trang 68
Trang 69
Tng ng cu lnh
TRUNCATE TABLE luong_nhanvien
V. Mt s hm thng dng trong SQL Server
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
Cng dng: Hm tr v mt gi tr kiu DateTime bng cch cng thm mt khong gi
tr l number vo ngy date c ch nh.
b. Hm DATEDIFF
C php:
DATEDIFF(datepart, startdate, enddate)
Cng dng: Hm tr v khong thi gian gia 2 gi tr kiu ngy startdate v enddate ty
thuc vo datepart.
V d:
DateDiff(year, '3/10/2003', '6/15/2010') kt qu: 7
c. Hm DATEPART
C php:
DATEPART(datepart, date)
Cng dng: Hm tr v mt s nguyn c trch ra t thnh phn c ch nh bi
datepart trong gi tr ngy date.
V d:
DatePart(year, '6/15/2010') kt qu: 2010
d. Hm GETDATE
C php:
GETDATE()
Cng dng: Hm tr v gi tr l ngy hin ti.
e. Hm DAY, MONTH, YEAR
C php:
DAY(date) / MONTH(date) / YEAR(date)
Cng dng: Hm tr v gi tr l ngy / thng / nm ca ngy date.
V d:
Day('6/15/2010') kt qu: 15
Month('6/15/2010') kt qu: 6
Lu hnh ni b
Trang 70
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
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);
4. Gii phng ti nguyn
. Chuyn Form v ch Design View
. ca s properties ca form ang chn, click Events
. Nhp p ln s kin FormClosing
. Vit code cho s kin ny nh sau:
// Gii phng ti nguyn
dtTABLENAME.Dispose();
dtTABLENAME = null;
// Hy kt ni
conn = null;
II. a d liu ln cc i tng ListBox / ComboBox DataGridView
1. a d liu ln ListBox / ComboBox
V d 10.1: Thit k form nh sau
(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
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();
III. Cc thao tc trn d liu: Thm Sa - Xa
1. V d 10.4: T V d 10.3, b sung button sau
Xa (btnXoa): xa record hin hnh ra khi table KhachHang.
* 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();
2. V d 10.5: T V d 10.4, b sung cc i tng nh sau (xem hnh)
- Panel, trong c
+ 4 TextBox: txtMaKH, txtTenCty, txtDiachi, txtDienthoai
+ 1 ComboBox: cbThanhpho
- 4 Button: btnThem, btnSua, btnLuu, btnHuy
* Yu cu:
- Thit k khng cho ngi dng thao tc (Enabled = false) khi load form:
+ Panel
+ Cc Button Lu, Hy
- iu chnh li thuc tnh (properties) ca DataGridView
+ AllowUserToAddRows = False
+ EditMode = EditProgrammatically
- Khi Form load: a d liu t table KhachHang ln DataGridView (dgvKHACHHANG),
c by li.
- Nhp vo Button ReLoad: load li ni dung table KhachHang ln dgvKHACHHANG
- Nhp vo Button Thm:
+ Xa trng cc i tng trong Panel.
+ Cho php nhp thng tin khch hng vo cc i tng trn Panel
+ Khng cho php thao tc trn cc Button: Thm, Sa, Xa, Thot.
+ Cho php thao tc trn cc Button: Lu, Hy.
- Nhp vo Button Sa:
+ a thng tin ca khch hng ang c chn trong DataGridView ln Panel.
+ Cho php nhp / sa thng tin khch hng vo / trong cc i tng trn Panel.
+ Khng cho php thao tc trn cc Button: Thm, Sa, Xa, Thot.
+ Cho php thao tc trn cc Button: Lu, Hy.
- Nhp vp Button Lu.
+ Insert / Update thng tin khch hng t Panel vo table KhachHang.
+ ReLoad li DataGridView
- Nhp vp Button Hy:
+ Xa trng cc i tng trong Panel.
+ Khng cho php nhp thng tin khch hng vo cc i tng trn Panel
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();
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();
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
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();
Cu 02: (Form2 Mn hnh ng nhp - login)
Vit chng trnh th hin mn hnh ng nhp (login) nh sau:
Lu hnh ni b
Trang 86
Lu hnh ni b
Trang 87
Trang 88
Trang 89
{
case 1:
lblDM.Text = "Danh Mc Thnh Ph";
daTable = new SqlDataAdapter("SELECT
ThanhPho, TenThanhPho FROM THANHPHO",
conn);
break;
case 2:
lblDM.Text = "Danh Mc Khch Hng";
daTable = new SqlDataAdapter("SELECT MaKH,
TenCTy FROM KHACHHANG", conn);
break;
case 3:
lblDM.Text = "Danh Mc Nhn Vin";
daTable = new SqlDataAdapter("SELECT MaNV,
Ho, Ten FROM NHANVIEN", conn);
break;
case 4:
lblDM.Text = "Danh Mc Sn Phm";
daTable = new SqlDataAdapter("SELECT MaSP,
TenSP, DonViTinh, DonGia FROM SANPHAM",
conn);
break;
case 5:
lblDM.Text = "Danh Mc Ha n";
daTable = new SqlDataAdapter("SELECT MaHD,
MaKH, MaNV FROM HOADON", conn);
break;
case 6:
lblDM.Text = "Danh Mc Chi Tit Ha n";
daTable = new SqlDataAdapter("SELECT *
FROM CHITIETHOADON", conn);
break;
default:
break;
}
// Vn chuyn d liu ln DataTable dtTable
dtTable = new DataTable();
dtTable.Clear();
daTable.Fill(dtTable);
// a d liu ln DataGridView
dgvDANHMUC.DataSource = dtTable;
// Thay i rng ct
dgvDANHMUC.AutoResizeColumns();
}
catch (SqlException)
{
MessageBox.Show("Khng ly c ni dung trong
table. Li ri!!!");
Lu hnh ni b
Trang 90
}
}
- Tr V: Nhp p vo button Tr V, thm vo on code sau
this.Close();
Cu 06: (Form4 Menu Qun l danh mc n \ Danh mc Thnh Ph )
* Yu cu:
- Trn Form1: khi chn menu Qun l danh mc n \ Danh mc Thnh Ph s m
Form4.
- Trn Form4: Thit k nh sau:
Trang 91
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
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
Trang 97
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
Trang 99
-- Ht --
Lu hnh ni b
Trang 100