Professional Documents
Culture Documents
NET (C#)
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Tc gi:
Email:
Cng ty:
LI NG
Ton tp gio trnh ny l kt qu ca s c ng nhng kin thc cn thit gip
bn lm ch nn tng .NET cho cng vic. Chng ti c kt nhng kinh nghim
thc t, rt gn nhng im cn lu , nhng k thut m hu ht cc cng ty
phn mm pht trin ng dng trn nn tng .NET u yu cu thc hin. Hn na
y cn l ti liu m bn c th s dng n tp li nhng kin thc sau
nhng gi ln lp v c bit trong cng vic ca cc bn.
Xut thn t mt nh pht trin, chuyn gia phn tch h thng, ti gi nhng
kin thc ct li v cn thit nht trong lp trnh trn cng ngh .NET vo ti
liu ny. Nhng v d trong ti liu l nhng v d thc t c ti trch lc
t nhng d n m ti v ng s thc hin trong sut thi gian tham gia lm
vic ti nhiu cng ty phn mm ln, l cc tnh hung c th m chng ti
gp phi, v gi y ti tng kt li gii thiu n cc bn nh mt s chia
s kinh nghim.
Sau thi gian lm vic v hot ng trn mng thng tin Vit Nam www.itgate.com.vn - c nhiu ngi bn lm vic ti cc cng ty tin hc trong
nc cng nh cc bn b ca ti trn mng gi email, hi p v yu cu ti
vit mt ti liu y v lp trnh .NET, chia s nhng kinh nghim thc t
trong cng vic mi ngi cng tham kho, phi ngn gn v tht s thc t
nhng li phi chuyn su v th hin nhng k thut cao trong lp trnh. Ti
ngh v nhng yu cu , v quyt nh vit ti liu ny vo mi bui ti sau
gi lm vic. y nh mt mn qu p li s tn nhim, yu mn m cc bn ,
ang v s dnh cho ti.
Ti rt mong nhn c nhiu kin ng gp ca cc bn cho ti liu ny, v
ti s tng hp li cp nht cho ti liu mt tt hn.
Ti mong rng ti liu ny s ng hnh cng cc bn trong cng vic.
Tc gi
BN QUYN TC GI
Ti liu ny c Phm Tun Anh thc hin nhm phc v mc ch o to nhn lc
trong chng trnh o to cng ngh .NET do Cng Cng ngh thng tin Vit Nam
thc hin, v c lu hnh ni b trong phm vi khng gian o to ca chng
trnh.
Ti liu ny c xy dng t kin thc v kinh nghim c c trong thi gian
di hot ng ca ng Phm Tun Anh, c tham kho mt s ti liu nc ngoi
c lit k ti mc THAM KHO cui ti liu ny.
Mi s sao chp, sao lu, xut bn, chuyn giao khng c s cho php ca ng
Phm Tun Anh l khng hp php.
Tc gi
MC LC
LP TRNH .NET (C#) ..................................... 8
Cu trc lp trnh C# cn bn------------------------------------------------ 9
ng dng C# Hello World................................................ 9
Tip cn C#----------------------------------------------------------------- 10
Khai bo bin trong C#.................................................. 11
Kiu d liu trong C#................................................... 11
lp
lp
lp
lp
While......................................................
do.........................................................
for........................................................
foreach....................................................
13
14
14
14
C S D LIU .......................................... 27
Thao tc vi h qun tr d liu MSSQL Server ...................... 28
Khi to mt h c s d liu...........................................
To bng................................................................
Truy vn d liu t mt bng............................................
Truy vn d liu c iu kin...........................................
Truy vn d liu t nhiu bng..........................................
Thm d liu vo bng...................................................
Cp nht d liu trong bng.............................................
Xa d liu t bng.....................................................
28
28
28
29
29
31
31
31
34
35
35
35
36
36
37
BI TP C HNG DN ............................................... 38
BI TP T RN LUYN ............................................... 38
Data Binding ....................................................... 38
Khi nim Data Binding.................................................. 38
Thc hin Data Binding thng qua cu lnh truy vn...................... 39
Lc v sp xp d liu ............................................. 39
Lc mt Dataset......................................................... 39
S dng cu lnh SQL c tham s......................................... 39
50
51
51
52
52
53
53
55
55
56
56
56
Xy dng ng dng Hello ASP.NET s dng Visual Studio .NET IDE ..... 66
S kin Page_Load()..................................................... 70
73
73
74
74
75
75
75
76
76
76
76
77
77
DropDownList Control.................................................... 77
80
81
82
82
83
89
91
94
95
96
97
D N ................................................. 113
Project 1.----------------------------------------------------------------- 113
Cu trc lp trnh C# cn bn
ng dng C# Hello World
Hellow World l chng trnh u tin m u cho vic hc mt ngn ng lp
trnh no , vi C# cng th, hy bt u vi C# Hello World
V d 1:
Sau y l chng trnh C# Hello World, m ngun nh sau:
/*This is Hellow World C# Program*/
using System;
using System.Collections.Generic;
using System.Text;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Welcome to C# World");
}
}
}
Tip cn C#
Nhng ch chnh
Ti phn ny, bn s hc:
10
DataType
VariableName;
Trong ,
AccessModifier: xc nh u tin truy xut ti bin
Datatype: nh ngha kiu lu tr d liu ca bin
VariableName: l tn bin
Cp truy xut ti bin c m t nh bng di y
Access Modifier
M t
public
Truy cp ti bt k ni u
protected
private
M t
V d
object
kiu d liu c bn ca tt c cc
kiu khc
string
c s dng lu tr nhng gi
tr kiu ch cho bin
int
S dng lu tr gi tr kiu s
nguyn
byte
s dng lu tr gi byte
float
S dng lu tr gi tr s thc
bool
char
Input/Output trong C# cn bn
Input /output trong C# c thc hin thng qua vic s dng hm ca lp Console
trong namespace System.
Hai hm thng s dng nht cho thao tc Input/Output l:
Console.WriteLine();
Console.ReadLine();
Trong d,
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
11
Cu trc if
Cu trc if trong C# c m t nh sau:
if (biu thc iu kin)
{
// cu lnh thc thi nu biu thc iu kin ng
}
[else
{
// cu lnh thc thi nu biu thc iu kin sai
}]
V d:
if (20 % 4 > 0)
{
Console.WriteLine("S 20 khng chia ht cho 4");
}
else
{
Console.WriteLine("S 20 chia ht cho s 4");
}
thc thi
thc thi
thc thi
thc thi
}
V d:
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
12
int x = 20 % 4;
switch (x)
{
case 1:
Console.WriteLine("20 chia cho 4 c s d l 1");
break;
case 0:
Console.WriteLine("20 chia ht cho 4");
break;
default:
Console.WriteLine("Khng thuc tt c cc trng hp trn");
break;
}
While
Do while
For
Foreach
Vng lp While
Cu trc vng lp while
while
(condition)
{
// cu lnh
}
Thc thi cu lnh hoc mt lot nhng cu lnh n khi iu kin khng c
tha mn.
V d:
using System;
class WhileTest
{
public static void Main()
{
int n = 1;
while (n < 6)
{
Console.WriteLine("Current value of n is {0}", n);
n++;
}
}
}
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
13
Vng lp do
Cu trc vng lp while
do
{
// cu lnh
}
white
(condition)
Vng lp for
Cu trc vng lp for
for (initialization; condition; increment / decrement)
{
// thc thi cu lnh
}
V d:
using System;
public class ForLoopTest
{
public static void Main()
{
for (int i = 1; i <= 5; i++)
Console.WriteLine(i);
}
}
Vng lp foreach
Cu trc vng lp foreach
14
Chng ta hc
Ti y, bn tm hiu v lm quen vi lp trnh trn nn tng .NET vi ngn
ng C#. Nhng kin thc sau bn cn nm vng:
15
Bi tp t thc hin
cng c kin thc hc, Nhng bi tp sau y c yu cu thc hin
1. Vit chng trnh cho php nht vo 1 s nguyn dng N, v hin th gi tr
t 0 n N ra mn hnh
2. Vit chng trnh my tnh c nhn cho php nhp vo hai s v thc hin tnh
ton: nhn, chia, cng, tr, l tha
3. Vit chng trnh gii bi ton phng trnh bc hai: aX2 + bX + c = 0 vi
a,b,c l cc tham s
16
Lp (class) trong C#
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
17
Class
Mt Class l mt khi nim m t cho nhng thc th c chung tnh cht v hnh
vi. Class nh ngha nhng thuc tnh v hnh vi c dng cho nhng i tng
ca lp . Do c th ni Class l mt khun mu cho cc i tng.
Cng thc to mt class
AccessModifier class className
{
// thn class
}
i tng (Objects)
i tng l mt i din, hay c th ni l mt sn phm ca mt class. Tt c
cc i tng u c chung nhng thuc tnh v hnh vi m class nh ngha. Cch
to i tng ging nh cch to mt bin c kiu d liu l Class.
AccessModifier
ClassName
18
Destructors
L mt hm c bit c s dng lm sch b nh. Cch khai bo ging nh
Constructor nhng khng c tham s v c bt u bng du ~.
V d
class Library
{
private int ibooktypes;
//Constructor
public Library()
{
ibooktypes = 7;
}
public Library(int value)
{
ibooktypes = value;
}
~ Library()
{
//thc thi cu lnh
}
}
Fuction Overloading
Method Overloading xut hin khi trong mt class c t hai hm c cng tn. C
hai kiu Method Overloading:
V d
class Library
{
// Function Overloading
public void insertbooks(int id)
{
//
}
public void insertbooks(int id, int type)
{
//
}
public void insertbooks(string id, int type)
{
//
}
}
Ba hm insertbooks trn l mt v d v function overloading trong lp trnh
C#. Trong khi hm th nht v th 2 l overloading theo s lng tham s, v hm
th 3 vi hm th 2 l overloading theo kiu tham s truyn vo.
19
Tha k trong C#
Mt trong nhng u im ni bt ca lp trnh hng i tng l tha k,
l s s dng li nhng thuc tnh v hnh vi ca mt lp. C hai kiu k tha
trong lp trnh, n k tha v a k tha.
C# cung cp m hnh n k tha.
V d v k tha trong C#.
/* V
using
using
using
namespace __OOP_Inheritance
{
class Program
{
static void Main(string[] args)
{
Dog objDog = new Dog(4);
objDog.displayProperties();
Chicken objChicken = new Chicken(2);
objChicken.displayProperties();
Console.Read();
}
}
class Animal
{
protected int ifoots;
protected string sName;
protected void setFoot(int ival)
{
ifoots = ival;
}
protected void setName(string sVal)
{
sName = sVal;
}
public void displayProperties()
{
Console.WriteLine(sName + " have " + ifoots.ToString()+ "
foots");
}
}
class Dog : Animal
{
public Dog(int ival)
{
setName("Dog");
ifoots = ival;
}
}
class Chicken : Animal
{
public Chicken(int ival)
{
setName("Chicken");
setFoot(ival);
}
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
20
}
}
Kt qu khi thc thi chng trnh
namespace __OOP_Inheritance
{
class Program
{
static void Main(string[] args)
{
Dog objDog = new Dog(4);
objDog.displayProperties();
Chicken objChicken = new Chicken(2);
objChicken.displayProperties();
Tiger objTiger = new Tiger(4);
objTiger.displayProperties();
Console.Read();
}
}
class Animal
{
protected int ifoots;
protected string sName;
protected void setFoot(int ival)
{
ifoots = ival;
}
protected void setName(string sVal)
{
sName = sVal;
}
public virtual void displayProperties() // ch hm ny
{
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
21
Polymorphism
V d
22
using System;
using System.Collections.Generic;
using System.Text;
namespace __OOP_polymorphism
{
class Program
{
static void Main(string[] args)
{
Child objchild = new Child();
Console.WriteLine("Result is " + objchild.methodA().ToString());
Console.Read();
}
}
class Parent
{
public int methodA()
{
return methodB() * methodC();
}
public virtual int methodB()
{
return 1;
}
public int methodC()
{
return 2;
}
}
class Child : Parent
{
public override int methodB()
{
return 3;
}
}
}
Kt qu chy trng trnh
23
chung ca
lp khc.
c nh
tng ca
Namespaces
Khi nim Namespace
ng mang tn v tng danh ting Trn Hng o u c ti Si Gn v H Ni,
vy lm sao phn bit khi ngi nc ngoi mun hi v ng Trn Hng o.
Cch n gin nht l khi mun gi tn ng Trn Hng o ti H Ni th ta
gi ng Trn Hng o ti H Ni v tng t ti Si Gn l ng Trn Hng
o ti Si Gn v chc chn chng ta s c cu tr li cho v khch .
H Ni, Si Gn trong v d trn l mt v d cho Namespace.
Vy c th hiu Namespace l mt gi nhng thc th c thuc tnh v hnh vi c
lp vi bn ngoi. Nhng u im ca namespace c lit k nh sau:
Khai bo mt Namespace
namespace NamespaceName
{
// ni cha ng tt c cc class
}
Trong ,
Namespace: l t kha khai bo mt NameSpace
NamespaceName: l tn ca mt Namespace
V d
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
24
namespace CSharpProgram
{
class Basic
{
}
class Advance
{
}
}
Enumerator trong C#
Enums l mt lot tn ca nhng hng s. c s dng nh ngha nhng kiu
d liu c mt lot nhng gi tr xc nh.
V d sau m t v Enumerator
using System;
using System.Collections.Generic;
using System.Text;
namespace __OOP_polymorphism
{
class Program
{
static void Main(string[] args)
{
// Enummerator
EnumDemo eobj = newEnumDemo();
eobj.getWeekDay(DayinWeek.Saturday);
Console.Read();
}
}
public enum DayinWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
public class EnumDemo
{
public void getWeekDay(DayinWeek dayoff)
{
Console.WriteLine("My weekday is " + dayoff.ToString());
}
}
}
BI TP C HNG DN
Namespace System.IO
25
BinaryReader
Binary Writer
Stream
TextReader
TextWriter
Directory
File
FileSystemInfo
26
C S D LIU
Mc tiu kha hc ny
Sau phn ny, bn c th
Hiu v cc h c s d liu
Thao tc d liu vi CSDL MSSQL Server bng cc cu lnh insert, update,
delete, select c bn
Truy vn d liu t nhiu bng cng lc.
27
C s d liu
C s d liu l tp hp nhng dng d liu c sp xp theo mt cu trc nht
nh.
H qun tr c s d liu
L phn mm c s dng qun tr cc c s d liu.
Bng (Table)
Bng c th c hiu l ni thc s cha d liu mc vt l. Bng l tp
hp nhng dng d liu c cng cu trc c nh ngha bi nhng ct (Column),
mi dng d liu trong bng cha nhng kiu d liu c qui nh bi nhng ct
ca bng.
Trong
-
CREATE DATABASE
l t kha to c s d liu
database_name l tn c s d liu.
To bng
Cu trc cu lnh n gin khi to mt bng trong mt CSDL nh sau
CREATE TABLE
(
Tn ct 1
Tn ct 2
Kiu d liu,
Kiu d liu,
..
28
V d:
SELECT * FROM MyTable where vName = Phm Tun Anh
Select * from MyTable where igender = 1
vname
A
B
C
D
Items
iid
1
2
3
4
5
icid
1
1
2
3
5
vvalue
V1
V2
V1
V1
V1
29
select
c.*,
i.iid,
vvalue
from category c
JOIN
Items i
ON c.icid = i.icid
Kt qu t c nh bng sau
1
1
2
3
A
A
B
C
1
2
3
4
V1
V2
V1
V1
vname
A
A
B
C
D
iid
1
2
3
4
NULL
vvalue
V1
V2
V1
V1
NULL
30
icid
1
1
2
3
NULL
vname
A
A
B
C
NULL
iid
1
2
3
4
5
vvalue
V1
V2
V1
V1
V1
[WHERE [IU
V d
update items set vvalue='V5' where iid=5
Lu , khi s dng cu lnh UPDATE, nn s dng iu kin pha sau m bo
rng ch c nhng dng tha iu kin mi c cp nht.
Xa d liu t bng
Cu trc cu lnh cp nht d liu trong bng nh sau
DELETE TableName [WHERE [IU KIN]]
V d
DELETE items where iid=5
Lu , khi s dng cu lnh DELETE, nn s dng iu kin pha sau m bo
rng ch c nhng dng tha iu kin mi c xa.
31
32
33
M hnh ADO.NET
Data Provider
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
34
Kt ni
Kt ni l mt component c s dng thit lp mt kt ni n c s d liu
t mt data source. C hai kiu i tng kt ni thng s dng nht l
OleDbConnection v SqlConnection. Bng sau y hin th nhng thuc tnh v
phng thc hay s dng nht ca mt i tng kt ni.
Tn
M t
ConnectionString
Open()
M
mt
kt
ni
ConnectionString
Close()
State
vi
datasource
khai
bo
ti
Data Adapter
Data Adapter l thnh phn ca ADO.NET, c tc dng chuyn tip d liu t v
n c s d liu. data Adapter nhn d liu t c s d liu vo mt DataSet.
Khi bn thay i d liu trong dataset, cng l thay i trong c s d liu bi
dataadapter. C hai kiu data adapter thng dng cu hnh kt ni n c s
d liu trong Visual Studio .NET:
35
Data Adapter giao tip vi c s d liu trong khi nhn, thm mi, xa v cp
nht d liu. Nhng thuc tnh sau y c thit lp thc hin nhng tc v
khc nhau trn mt h c s d liu
Data Command
DataCommand l i tng thc thi nhng cu lnh SQL hoc stored procedure c
s dng thao tc vi CSDL. Data Command l i tng ca lp SqlCommand v
OleDbCommand.
V d s dng Data Command
string connectionstring
= "PROVIDER=SQLOLEDB;
server=(local);uid=_net;pwd=;database=_NET";
OleDbConnection conObj = new OleDbConnection(connectionstring);
conObj.Open();
OleDbCommand cmd = new OleDbCommand("delete from books where
ibookid='003'",conObj);
int result = cmd.ExecuteNonQuery();
conObj.Close();
Data Reader
Data reader c s dng ch nhn d liu t mt data source. S dng data
reader nhn c kt qu nhanh hn v khng tn b nh ti mi thi im v ch
mt hng d liu thc s c lu tr trong b nh.
Cc thuc tnh ca i tng DataReader:
Tn
M t
Read()
Close()
NextResult
36
DataSet
L i tng nhn d liu t c s d liu thng qua DataAdapter, DataSet hot
ng nh mt c s d liu o cha nhng bng, dng, v ct.
M hnh DataSet nh sau
M hnh Dataset
37
BI TP C HNG DN
Yu cu
ng dng qun l cuc gi cn cung cp kh nng xem chi tit khch hng cho b
phn Bn hng. Hy to mt ng dng hin th chi tit khch hng cho phng
Kinh doanh.
Gii quyt
Bn thc hin nhng bc sau
1.
2.
3.
4.
To mt
To mt
To mt
Nhn v
kt ni
Data Adapter
Dataset
hin th d liu t c s d liu.
BI TP T RN LUYN
Yu cu
Mt ng dng cn c xy dng cho php ngi qun l ca cng ty NetNam
Telecommunication xem nhng n t hng ca khch t c s d liu. Thm vo
, vi mi t hng, phn trm chi ph ca mt sn phm cn c lit k.
Hng dn
1. To mt data adapter
2. To mt Dataset
3. Nhn, xem d liu t c s d liu.
Data Binding
Khi nim Data Binding
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
38
Lc v sp xp d liu
D liu ly v t c s d liu bi cu lnh truy vn
dng d liu trong mt bng. Yu cu t ra l ch
tng ng vi mt m s no . gii quyt vn
cch thc thc hin: lc d liu trong DataSet v
thit qua cu lnh SQL c tham s.
select bao gm tt c cc
ly mt s dng xc nh
ny, ADO.NET cung cp hai
thc hin ly d liu cn
Lc mt Dataset
D liu t mt table trong c s d liu c lt ton b v vo Dataset, sau
tin hnh lc nhng dng d liu cn thit.
V d sau m t cch thc hin ny.
private void button4_Click(object sender, EventArgs e)
{
string connectionstring = "PROVIDER=SQLOLEDB;
server=(local);uid=_net;pwd=;database=_NET";
OleDbConnection conObj = new OleDbConnection(connectionstring);
conObj.Open();
OleDbCommand cmd = new OleDbCommand("select * from books",conObj);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "books");
MessageBox.Show( ds.Tables["books"].Rows.Count.ToString());
// filter data
DataView dv = new DataView(ds.Tables["books"]);
dv.RowFilter = "fprice>20000";
dv.Sort = "fprice DESC";
MessageBox.Show(dv.Table.Rows.Count.ToString());
conObj.Close();
}
39
server=(local);uid=_net;pwd=;database=_NET";
OleDbConnection conObj = new OleDbConnection(connectionstring);
conObj.Open();
OleDbCommand cmd = new OleDbCommand(" select * from books where
inxb=?", conObj);
cmd.CommandType = CommandType.Text;
// truyn tham s vo cu lnh SQL
cmd.Parameters.AddWithValue(@ibookid", 2);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "books");
MessageBox.Show(ds.Tables["books"].Rows.Count.ToString());
conObj.Close();
Bn lu vi dng lnh
cmd.Parameters.AddWithValue(@ibookid", 2);
y l cch s dng ngn gn khi truyn tham s m nhng chuyn gia pht trin
phn mm thc t thng s dng, nguyn mu cu lnh c cng thc nh sau:
40
V d
Chng ta hc
By gi, bn c th hon ton thao tc trn c s d liu t ng dng bn
pht trin. Mt s im sau bn cn lu ghi nh
41
42
{
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = cmd;
da.Fill(ds);
return ds.Tables[0];
}
}
}
else
{
using (OleDbConnection conn = GetConnection())
{
using (DataSet ds = new DataSet())
{
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = cmd;
da.SelectCommand.Connection = conn;
da.Fill(ds);
return ds.Tables[0];
}
}
}
}
}
finally
{
}
}
public static OleDbDataReader GetReadOnlyData(OleDbCommand cmd)
{
try
{
if (cmd.Connection != null)
{
return cmd.ExecuteReader();
}
else
{
using (OleDbConnection conn = GetConnection())
{
cmd.Connection = conn;
datareader = cmd.ExecuteReader();
return cmd.ExecuteReader();
}
}
}
finally
{
}
}
public static DataSet GetDsData(OleDbCommand cmd)
{
try
{
if (cmd.Connection != null)
{
using (DataSet ds = new DataSet())
43
{
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = cmd;
da.Fill(ds);
return ds;
}
}
}
else
{
using (OleDbConnection conn = GetConnection())
{
using (DataSet ds = new DataSet())
{
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = cmd;
da.SelectCommand.Connection = conn;
da.Fill(ds);
return ds;
}
}
}
}
}
finally { }
}
public static DataTable GetData(string sql)
{
try
{
using (OleDbConnection conn = GetConnection())
{
using (OleDbCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
using (DataSet ds = new DataSet())
{
using (OleDbDataAdapter da = new OleDbDataAdapter())
{
da.SelectCommand = cmd;
da.SelectCommand.Connection = conn;
da.Fill(ds);
return ds.Tables[0];
}
}
}
}
}
finally
{
}
}
public static void ExecuteNonQuery(OleDbCommand cmd)
{
try
{
using (OleDbConnection conn = GetConnection())
{
44
cmd.Connection = conn;
cmd.ExecuteNonQuery();
}
}
finally
{
}
}
public static object ExecuteScalar(OleDbCommand cmd)
{
try
{
using (OleDbConnection conn = GetConnection())
{
cmd.Connection = conn;
return cmd.ExecuteScalar();
}
}
finally
{
}
}
}
DBClass.ConnectingString = "PROVIDER=SQLOLEDB;
server=(local);uid=_net;pwd=;database=_NET";
// vic gi mt cu truy vn by gi n gin l vic gi hm trong lp
DBClass
DataTable dt = DBClass.GetData("select * from items");
Chng ta c th thy l vic thc hin cu truy vn d liu t bng items
tr nn cc k n gin hn bao gi ht. Khng cn phi m kt ni Connection,
s dng DataAdapter bn vn c c d liu t bng items. Ni cho ng th
chng ta a nhng cng don ny vo trong lp OleDBClass v gi y chng ta
ch quan tm ti mc ch s dng cu truy vn m khng mt qu nhiu m lnh
thc hin cc bc chun b.
45
Cung cp cho bn nhng giao din chung cho vic pht trin nhiu loi d n khc
nhau trn nn tng .NET. IDE cho php kh nng thit k giao din ngi dng cho
ng dng, vit m lnh, bin dch, v kim li cho ng dng. Visual Studio .NET
cung cp nhiu ngn ng pht trin ng dng trong b .NET ca Microsoft nh:
Visual Basic, Visual C#, Visual C++.
Trong ca s New Project, Project Types pane hin th danh mc nhng kiu
project m bn c th to trong VS. Chng ta quan tm ti hai loi project l
Visual C# v Setup and Deployment. Trong khi Visual C# l kiu d n cho php
to ra ng dng bng ngn ng C#, th Setup and Deployment l kiu project
trin khai d n n ngi dng cui.
Chn Visual C# Windows ti Project Types.
ca s Templates, mt s mu ng dng c sn gip ngi pht trin nhanh
chng to ra ng dng ph hp theo yu cu. C cc kiu project template sau cn
ch nht:
46
ToolBox
Error List
Window Form
Properties Window
47
48
Ca s m lnh cho php nh pht trin son tho m lnh iu khin chng trnh
49
50
Windows Form
M t
Name
Backcolor
BackgroundImage
Font
Size
Start Position
Text
WindowState
M t
Click
Closed
Deactivate
Load
MouseMove
51
Events
M t
MouseDown
MouseUp
M t
V d
Show()
Activate()
frmObj.Activate();
Close()
Dng ng mt Form
frmObj.Close();
SetDesktopLocation()
Hm ny dng nh v tr
ca Form trn mn hnh
SetDesktopLocation(100,150)
TextBox Control
TextBox l iu khin cho php nhn gi tr t ngi dng trn mt Form. Mc
nh gi tr ln nht m TextBox nhn l 2048 k t.
TextBox Control
Property
M t
V d
Text
Xc nh gi tr hin th
bn trong TextBox
txtUserName.Text=pta30000;
Multiline
txtContent.Multiline = true;
PasswordChar
txtPassword.PasswordChar=*;
Label Control
Control c s dng hin th ch trn form v khng cho php ngi dng thay
i. Label c s dng m t thng tin cho nhng control khc trn Form.
52
Label Control
Dng ch xut hin bn trn TextBox l Label, c mc ch gii thch cho
TextBox.
LinkLabel Control
LinkLabel c s dng hin th mt chui nh mt lin kt. Khi bn nhn vo
lin kt, n s m ra mt form khc hoc mt Website.
m ra mt form khc, .NET cung cp s kin LinkClicked, bn thc hin nh
sau:
private void linkLabel1_LinkClicked(object sender,
LinkLabelLinkClickedEventArgs e)
{
Form1 frmobj = new Form1();
frmobj.Show();
}
m mt website, bn c th dng on m sau t bn trong s kin Link
private void linkLabel1_LinkClicked(object sender,
LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start( "http://www.itgatevn.com.vn");
}
ListBox Control
ListBox c s dng hin th mt danh sch phn t n ngi dng. Mt ngi
dng c th chn mt trong nhng phn t ny.
Bn c th thm danh mc nhng phn t vo trong mt ListBox bng cch, chn
ListBox, ti ca s Properties Window, chn thuc tnh Items, nhn vo nt
v
ca s String Collection Editor xut hin nh hnh di.
53
Nhp vo VietNam, g Enter, nhp vo USA, g Enter. Sau nhn OK. ListBox ca
bn s c hai phn t VietNam v USA.
Bn cng c th thm nhng phn t vo ListBox ti lc chy chng trnh bng
cch s dng phng thc Add() ca thuc tnh Items trong ListBox.
lstitems.Items.Add("German");
lstitems.Items.Add("China");
Nhng thuc tnh thng s dng nht ca ListBox c lit k theo bng di y
Property
M t
V d
SelectionMode
ListBox1.SelectionMode =
SelectionMode. MultiSimple;
Sorted
ListBox1.Sorted = true;
54
Property
M t
V d
ListBox1.SelectedIndex = 2;
SelectedItem
MessageBox.Show(
ListBox1.SelectedItem)
ComboBox Control
ComboBox c s dng hin th danh sch nhng phn t th xung. ComboBox l
s kt hp ca TextBox cho php ngi dng nhp gi tr v mt danh sch th
xung cho php ngi s dng chn phn t.
ComboBox
Hu ht nhng thuc tnh ca ComboBox ging nh thuc tnh ca ListBox, nhng
ComboBox c th thuc tnh Text.
Thuc tnh Text: cho php gn hoc nhn gi tr c ngi s dng nhp vo t
ComboBox.
thm nhng phn t vo ComboBox, tng t nh vi ListBox, bng cch s dng
phng thc Add() ca thuc tnh Items.
ComboBox1.Items.Add(VietNam);
ComboBox1.Items.Add(Thailand);
CheckBox Control
Control ny c dng gn ty chn Yes/No hoc True/False. Nhng thuc tnh
thng s dng ca CheckBox
Property
M t
V d
Text
CheckBox1.Text = Yes;
Checked
checkBox1.Checked = true;
55
RadioButton Control
RadioButton c dng cung cp s la chn mt trong mt nhm tiu ch cho
ngi dng. Ch mt RadioButton c chn trong mt nhm. Nhng thuc tnh
thng s dng ca RadioButton ging nh CheckBox, bao gm: Text, Checked.
GroupBox Control
c s dng nhm nhng control lin quan li vi nhau. GroupBox thng c
s dng nhm hai hay nhiu RadioButton cung cp mt s la chn duy nht
gia chng.
Button Control
Button c s dng thc hin mt tc v khi ngi s dng nhn vo n.
private void button1_Click(object sender, EventArgs e)
{
this.button1.Text = this.Text;
}
on m lnh trn thc hin vic gn Caption ca button1 bi Caption ca Form.
56
Ko th ColorDialg vo Form
Ti s kin Click() ca Button, thc hin on m lnh
57
Lp FontDialog
Ging nh ColorDialog, FontDialog c s dng ngi dng la chn kiu hin
th, kch thc ca ch. s dng FontDialog, bn thc hin theo cc bc sau
y
Ko th FontDialog t ToolBox vo Form.
Thc hin on m lnh sau
58
59
Context Menus c xut hin khi ngi s dng nhn chut phi. to ra
context menu, bn c th thc hin nh sau:
Ko th iu khin ContextMenuStrip vo ca s thit k ng dng. ContextMenu
xut hin nh hnh sau:
60
61
Bi tp c hng dn
1. Xy dng ng dng my tnh c nhn thc hin cc php tnh cn bn: cng,
tr, nhn, chia, ly tha
2. To mt giao din cho ng dng son tho m phng ng dng Microsoft Word
s dng MDI Form bao gm cc Menu: File, Edit, View, Insert, Format,
Window, Help
3. Xy dng ng dng son tho vn bn (Word Pad) s dng MDI Form to
trn.
Bi tp t luyn
Xy dng tr chi Tp g bn phm cho php xut hin nhng k t trn bn phm
v so snh vi phm m ngi s dng nhp vo. Tnh kt qu s ln ngi chi g
ng phm v s ln ngi chi g sai.
62
Bi tp c hng dn
1. Xy dng ng dng cho php qun l danh sch nhn vin ca mt cng ty
theo phng ban. Chi tit nhn vin cng ty bao gm: m s, h v tn, ngy
63
sinh, gii tnh, a ch, in thoi, ngy vo lm, ngy kt thc, chi
tit phng ban bao gm: m s phng ban, tn phng ban.
2. Xy dng chng trnh qun l kho hng, sn xut ca cng ty chi
GlobalToys.
Video hng dn thc hin chng trnh PTA_NET_APP_ADO_NET.WMV
D n t n luyn
Xy dng chng trnh qun l kho hng vi nhng yu cu sau
64
65
Ca s New Web Site xut hin cho php khi to cc loi webiste khc nhau
Visual Studio cung cp nhiu loi website mu, chng ta quan tm n cc kiu
mu website sau:
66
67
68
69
S kin Page_Load()
S kin Page_Load() cng ging nh hm Main() trong chng trnh Windows Form.
Hm Page_load c gi u tin khi mt trang c ti v trnh duyt ca ngi
s dng. S kin Page_Load nh sau
using
using
using
using
using
using
using
using
using
System;
System.Data;
System.Configuration;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;
70
}
}
Page_Load c t ng sinh ra khi double click vo ca s thit k.
Cc i tng ASP.NET
ASP.NET c mt s i tng c bit cn quan tm c th hin nh sau
i tng Request
V d: khi bn truy cp website itgatevn.com.vn, bn s thy trn thanh a ch
web nh sau
http://www.itgatevn.com.vn
Khi bn vo mt bi tin no , thanh a ch c dng nh sau:
http://www.itgatevn.com.vn/index.aspx?u=nd&scid=14&nid=4442
Vic chuyn thnh dng th hai c ngha rng
mt tin vi m s nid=4442, v chng trnh s
cung cp cho ngi s dng, v ly m s
duyt, ASP.NET cung cp i tng Request. i
tnh
Thuc tnh
ApplicationPath
Url
M t
y l thuc tnh ch c, cung cp ng dn ca ng dng
ASP.NET trn my ch trin khai.
Thuc tnh ch c, tr li i tng URI cha ng a ch
hon chnh ca mt yu cu.
UserHostAddress
Tr li a ch IP ca my ngi s dng
Browser
Cookies
QueryString
Form
71
i tng Response
i tng Response c nhim v gi thng tin n trnh duyt ngi s dng
(Client). Nhng thuc tnh v hm thng s dng ca i tng Response c m
t nh bng sau
Tn
ApplicationPath
Cache
ContentType
M t
y l thuc tnh ch c, cung cp ng dn ca ng dng
ASP.NET trn my ch trin khai.
Cung cp nhng thuc tnh v kh nng lu tr nh thi gian
ht hn, ci t ring ca website. y l thuc tnh ch
c.
Cho php gn hoc nhn kiu d liu c truyn n trnh
duyt ngi s dng (Client) thng qua i tng Response.
Cookies
IsClientConnected
public void
Redirect(string)
public void
Write(string)
i tng Session
i tng Session cho php ng dng ASP.NET lu tr trng
dng. Session bt u v kt thc khi ngi s dng kt ni
n mt trang web, session cng c t ng tt khi ngi
trang web trong mt thi gian xc nh, thi gian mc nh l
thi ca ngi s
v tt trnh duyt
dng khng s dng
20 pht.
Tn
M t
Count
SessionID
Timeout
public void
Add(string,object)
72
Tn
M t
public void
Clear()
public void
Remove(string)
M lnh
HtmlForm
<form runat=server></form>
HtmlInputText
HtmlInputCheckBox
HtmlInputRadioButton
HtmlInputImage
HtmlAnchor
<a runat=server></a>
73
M lnh
HtmlButton
HtmlTable
HtmlTableRow
<tr></tr>
HtmlTableCell
<td></td>
HtmlAnchor
iu khin HtmlAnchor lm vic nh tag <a> ca HTML nhng chy ti my ch,
HtmlAnchor c s dng chuyn ngi dng t mt trang n mt trang khc.
V d: <a id=myanchor1 href="http://www.itgatevn.com.vn" runat=server></a>
Trong ,
HtmlInputText
HtmlInputText lm vic nh th HTML <input type=Text>, nhng chy ti my ch.
HtmlInputText c s dng nhn d liu t ngi dng.
V d: <input id=txtName1 size=12 type=text runat=server />
Trong ,
74
HtmlInputCheckBox
HtmlInputCheckBox lm vic nh th HTML <input type=checkbox>, nhng chy ti
my ch. HtmlInputCheckBox c s dng thc hin cu hi vi tr li l C
hoc Khng.
V d: <input id=chkCoffeeorNot type=checkbox checked runat=server />
HtmlInputRadioButton
HtmlInputRadioButton lm vic nh th HTML <input type=radio>, nhng chy ti
my ch. HtmlInputRadioButton c s dng thc hin mt s la chn khi c
nhiu la chn c a ra cho ngi dng chn la.
V d: <input id=radioChooseOne type=radio checked runat=server />
HtmlSelect Control
HtmlSelect lm vic nh th HTML <select>, nhng chy ti my ch. HtmlSelect
c s dng to ra mt danh sch cho php ngi s dng la chn mt trong
danh sch .
V d:
<select runat=server>
<option>MU</option>
<option>Asenal</option>
<option>Bonton</option>
<option>Chelsea</option>
</select>
ListControls
RichWebControls
Data Controls
M t
Tng ng nh nhng HtmlControls bnh thuwofng nh:
TextBox, Label, Button, HyperLink, RadioButton, v
CheckBox.
c s dng xy dng mt danh sch, v cho php
nhn d liu t c s d liu, nhng control thuc dng
ny bao gm: ListBox, DropDownList, CheckBoxList v
RadioButtonList.
C cc iu khin nh Calendar, AdRotator, TreeView,
mi control c mt tnh nng ring.
c s dng hin th d liu t mt bng trong c
s d liu, bao gm nhng Control: DataGrid, DataList,
v Repeater.
75
TextBox Control
c s dng nhn d liu t ngi s dng, nh k t, s, ngy thng Thuc
tnh quan trng nht ca TextBox c lit k nh sau:
Thuc tnh
M t
Text
TextMode
Literal Control
Literal c s dng hin th d liu m khng quan tm n nh dng ca d
liu y. iu khin ny thch hp hin th d liu di dng ni dung, do ,
thuc tnh chnh ca Literal l thuc tnh Text. Bn c th tm thy iu
khin Literal di biu tng
V d s dng Literal
Literal1.Text = "This is literal contron";
FileUpload Control
FileUpload l thuc tnh c s dng cho php ti mt tp tin bt k ln my
ch web. y l iu khin c tch hp vo cc phin bn ASP.NET 2.0 tr v
sau. Bn c th tm thy iu khin ny ti thanh cng c vi biu tng
Panel Control
Panel l iu khin c s dng cha nhng nhm iu khin cho mt chc nng
ring, Panel cho php iu khin vic hin th nhng iu khin c cha trong
n.
76
Calendar Control
Calendar c s dng hin th ngy thng. Ngi s dng c th xem ngy
thng theo tun hoc thng. Nhng thuc tnh thng s dng bao gm
Thuc tnh
M t
DayNameFormat
VisibleDate
FirstdayOfWeek
SelectedDate
SelectionMode
DropDownList Control
Nh Select Control
mt mc trong danh
c cc thuc tnh
DropDownList thng
chy.
77
PlaceHolder
Panel
thm
vo
Chng ta s s dng k hn PlaceHolder Control trong phn thc hin kin trc
WebPortal trong phn sau.
, cc s kin ca iu khin
78
79
y cng l cch thc chung xem mi Control c bao nhiu s kin v kim sot
s s kin khai bo cho mi Control.
Xem v d thc hin iu khin Control PTA_NET_2_0_Control_CONTROLS.WMV
Bi tp 1
To mt ng dng Web cho php ngi s dng nhp Email, sau hin th Email
va nhp ln mn hnh.
Hng dn
Bn hy thc hin cc bc sau:
To mt ng dng Web
Hin th ca s thit kt.
Ko th mt TextBox Control vo ca s thit k.
Ko tht mt Button Control vo ca s thit k.
Bi tp 2
Thc hin mt ng dng website cho php ngi s dng khai bo thng tin c nhn
bao gm: h v tn, gii tnh, ngy sinh, a ch, in thoi, th in t
(email), ngh nghip, c quan (cng ty hoc trng hc), v thng tin gii thiu
v bn thn. Sau lu tr vo c s d liu.
80
System;
System.Data;
System.Configuration;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;
System.Data.OleDb;
81
H v Tn
1
Trn Tun Anh
2
Nguyn Hoi Nam
Tng s 20 hc sinh
Gii tnh
Ngy sinh
a ch
Nam
N
12/12/1985
1/3/1986
H Ni
Tp.H Ch Minh
Cn phi c phn u, phn thn, v phn cui ca mt danh sch, trong phn
u m t nhng ni dung c th hin trong phn thn, v phn cui l tng kt
cho danh sch phn thn.
Template trong ASP.NET cng nh vy, c ba phn chnh:
82
Ngoi
ra
cn
c
cc
Template
khc
nh
AlternatingItemTemplate,
SelectedItemTemplate, SeparatorTemplate chng ta s cp nhng khun mu ny
khi thc hin mt v d c th no .
Repeater Control
Mt Repeater control hin th d liu t nhng ngun d liu khc nhau bng cch
s dng nhng giao din c thit k. Repeater khng c giao din, v c hin
th nh hnh sau:
To mt ng dng web
Ko th mt DropDownList hin th danh sch lp cho php chn la, t tn
l ddlclasses
Ko th mt Button dng hin th danh sch nhng hc sinh trong lp c
chn ti dropdownlist, t tn l btndisplay.
Mt Repeater cho php hin th danh sch, t tn l rpstudents
83
84
<td><b>Địa chỉ</b></td>
</tr>
<tr>
<td>1</td>
<td>Trn Tun Anh</td>
<td>Nam</td>
<td>12/12/1985</td>
<td>H Ni</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
Vi phn u (header) l:
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"
id="table1">
<tr>
<td width=50><b>STT</b></td>
<td width=200><b>Họ v Tn</b></td>
<td width=75><b>Giới tnh</b></td>
<td width=125><b>Ngy sinh</b></td>
<td><b>Địa chỉ</b></td>
</tr>
Phn thn (Item) l:
<tr>
<td>1</td>
<td>Trn Tun Anh</td>
<td>Nam</td>
<td>12/12/1985</td>
<td>H Ni</td>
</tr>
V phn cui (Footer)
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
By gi, bn ch cn copy mi phn trn vo trong mi phn tng ng ca
Repeater rpstudents trn,
85
chng ta
sch. V
u tin,
thc hin
ch cn to mt
d danh sch hc
tt c thng tin
cho bn u tin
binding
d
liu
n
datasource,
ASP.Net
cung
cp
phng
thc
DataBinder.Eval() thc hin vic gn d liu t DataSource vo ItemTemplate
ca Repeater. Cng thc ca DataBinder.Eval() nh sau:
<% # DataBinder.Eval(ContainerName, DataFieldName, {FormatString}) %>.
p dng cng thc trn cho trng tn, bn s c nh sau:
<%#DataBinder.Eval(Container.DataItem,"vstudentname")%>
p dng tng t cho cc trng khc, chng ta s c kt qu l cu trc ca
ItemTemplate c hin th nh m t sau:
86
87
88
Gn iu khin vo Repeater
Sau khi bn hin th c danh sch sinh vin trong tng lp, c mt nhu cu
l xem chi tit im s ca tng sinh vin, nh th ti mi dng ng vi mi
sinh vin, bn phi thm mt button cho php xem chi tit im s tng hc vin.
Bn thc hin iu ny theo nhng bc sau:
Ti phn ItemTemplate, bn thm vo Button Control, nh sau:
89
ca s thit k, bn c c kt qu
90
Template
ti
hng
dn:
To v s dng UserControl
to UserControl bn thc hin cc bc sau:
T menu Visual Studio 2005, bn chn Website Add New Item, ca s Add New
Item xut hin nh m t sau y
91
92
93
94
Trang ASPX
Controls.Add()
UserControl
Controls.Add()
UserControl
Controls.Add()
UserControl
ControlPath: l ng dn n UserControl.
ControlName: l tn UserControl
V d:
Controls.Add(LoadControl("u_module1.ascx"));
khin
chng
trnh
cho
UserControl
95
{
case "module1":
Controls.Add(LoadControl("u_module1.ascx"));
break;
case "module2":
Controls.Add(LoadControl("u_module2.ascx"));
break;
}
Nhn F5, chy chng trnh, kt qu nh sau:
96
97
Mc <appSettings>
appSettings trong file web.config c s dng nh ngha nhng ci t do
ngi dng xy dng cho ng dng website. Chng hn bn c th s dng th
appSettings lu tr thng tin v chui kt ni n c s d liu.
Cng thc ca th <appSettings> nh sau:
<appSettings>
<add key=(key)
</appSettings>
value=(value/>
Trong ,
key=ConnectingString
c gi tr t th appSettings
c cc gi tr t th appSettings, bn thc hin nh sau
Import th vin System.Configuration; bng cch
using System.Configuration;
c gi tr t mt kha (key).
string connectionstring =
System.Configuration.ConfigurationSettings.AppSettings["ConnectingString"];
v d trn, ConnectingString l kha c t trong th appSettings ti file
web.config
Th <customErrors>
S dng th <customErrors>, bn c th nh ngh c nhng thng ip li xut
hin cho mt ng dng ASP.NET. Cng thc ca th customErrors nh sau:
<customErrosrs defaultRedirect=(URL) mode=(on/off/remoteonly)>
<error statusCode=(statusCode) redirect=(URL)/>
</customErrors>
Trong ,
98
V d:
<customErrosrs defaultRedirect=customerrors.aspx mode=On>
<error statusCode=500 redirect=CustomErrorMessage.aspx/>
</customErrors>
Khi li xut hin, nu m li l 500, trang s c chuyn n
CustomErrorMessage.aspx, mc nh trang c chuyn n customerrors.aspx.
trang
99
100
5. Ca s Virtual Directory
ConvertDollar2Current
Alias
xut
hin,
ti
Alias,
bn
nhp
vo:
101
102
103
12.
chn
tab
14.
104
105
Web Services.
Trong nhng nm gn y, s ht trin ca nhng ng dng Web dn thay th cho
nhng ng dng Desktop, mt s doanh nghip chuyn ton b h thng ng
dng qun l ca mnh t h thng chy trn Desktop sang nn tng ng dng Web.
Nhng h thng ny c nhiu thnh phn phc tp c pht trin trn nhiu ngn
ng khc nhau v c trin khai ti nhiu a im khc nhau. Do , vic pht
trin nhng ng dng phn tn t ra mt yu cu l bo cho nhng thnh phn
ny hot ng xuyn sut vi nhau. Webservice c ra i p ng yu cu
ny.
Mt webservices cung cp mt s nhng phng thc cho php s dng t mt hoc
nhiu ng dng khc nhau, bt chp vic nhng ng dng c xy dng trn
ngn ng no. Nhng phng thc nh th c gi l Web methods. Nhng hm c
s dng bi mt Web Service c th c cc ng dng khc truy cp n bng cch
s dng chun nh Simple Oject Access Protocol (SOAP). SOAP l mt giao thc s
dng ngn ng XML m t d liu v s dng HTTP truyn d liu. Mt ng
dng s dng mt Web service c gi l mt Web service client.
Web serivces cung cp nhng li ch sau:
textbox
Location,
g
http://localhost/Webservices_CurrentDollarConverter.asmx
v click vo nt
OK.
106
Ca s to mi d n
107
108
Sau khi kim tra ng dng, tin hnh build lp Web Service to th vin da
trn linkt ng (DLL), bng cch chn menu Build, Build Solution. By gi Web
Service c th s dng ti bt k ng dng no.
Bn s tin hnh th nghim gi v thc thi Web Services ny t mt ng dng Web
khc, nhng trc khi tin hnh gi, bn phi trin khai Web Services va to,
vic trin khai Web Service tng t nh vic trin khai mt ng dng web
ASP.NET m bn c hc trong phn trc. Sau khi trin khai Webservice, bn
thc hin cc bc sau.
109
Ca
s
Add
Web
Reference
xut
hin,
ti
mc
URL,
bn
http://localhost/Webservices_ConvertDollar2Current/service.asmx l ng
ca Web Service chng ta va trin khai, nhn nt Go, kt qu nh sau:
g
dn
110
i dollar ra tin Vit, trc y chng ta thc hin php tnh, nhng khi
ng dng webservice, bn ch cn khai bo i tng Web Service v gi hm t
i tng ny.
Nhn F5 thc thi.
111
112
D N
Project 1.
D n: Website thng tin v bn hng trc tuyn
M t:
SunToys l mt cng ty xut khu chi trn ton th gii. Cng vic kinh
doanh ca h lin tc pht trin trn th trng chu u, nm ti, h mun sn
phm ca mnh c mt ti th trng M. SunToys yu cu xy dng mt h thng
phn mm cho php khch hng ti th trng M c th xem thng nhng sn phm
ca h. Hn th na, SunToys k kt vi hng chuyn pht sn phm ti M cho
php sn phm ca SunToys n tay tng ngi tiu dng c nhn. Sn phm sau khi
c chn mua, s c phn phi sau ba ngy. Gim c cng ty quyt nh s xy
dng mt h thng cho php qun l s lng hng ha sn xut v tip nhn n
t hng t khch hng, v theo di qu trnh phn phi sn phm.
L mt cng ty phn mm chuyn nghip. bn hy thc hin yu cu trn.
Project 2.
D n: H thng qun tr kho hng
M t:
INGA l tp on phn phi h thng my ch hng u ti Vit Nam, cng ty c
hai tr s chnh ti Si Gn v H Ni. Mi ngy, cng ty phi gii quyt rt
nhiu n t hng ca khch hng. INGA c mt kho hng chnh ti Si Gn, cng
ty mun xy dng mt h thng qun tr kho hng v qun l n t hng, bn
hng vi nhng yu cu sau. H thng c ci t ti my ch ti Si Gn, v
mi ni nhn vin bn hng u c th thc hin vic tra cu thng tin hng ha
v thc hin gii quyt n hng m khng cn phi ci t trn my tnh th 2.
Hy thc hin yu cu ca INGA.
C THM
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
113
Kt ni n c s d liu MySQL
on m lnh sau thc hin vic kt ni n c s d liu MySQL bng lp trnh
C#.
MySqlConnection con = new
MySqlConnection("server=localhost;database=_net;uid=root;pwd=root");
con.Open();
Response.Write("Connected into MySQL Database");
con.Close();
Sau khi kt ni n c s d liu MySQL, bn c th thc hin mt cu truy
vn n mt bng trong c s d liu ny, on m lnh sau thc hin truy vn
n mt bng v hin th s dng d liu c trong bng ny.
MySqlConnection con = new
MySqlConnection("server=localhost;database=_net;uid=root;pwd=root");
con.Open();
Response.Write("Connected into MySQL Database");
MySqlCommand cmd = new MySqlCommand("select * from list",con);
cmd.CommandType = CommandType.Text;
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "list");
Response.Write(ds.Tables["list"].Rows.Count.ToString());
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
114
con.Close();
Hai v d trn cho thy, lp trnh kt ni c s d liu MySQL s dng Namespace
MySQL.Data.MySqlClient cng ging nh lm vic vi h c s d liu MSSQL thng
qua ADO.NET. V d sau s m t r hn v vn ny.
MySqlConnection con = new
MySqlConnection("server=localhost;database=_net;uid=root;pwd=root");
con.Open();
Response.Write("Connected into MySQL Database");
// thc hin thm mi d liu vo CSDL
cmd = new MySqlCommand("insert into list values(0,'New record
1','Description Record 1')");
cmd.Connection = con;
cmd.ExecuteNonQuery();
Response.Write("<br>Inserted into MySql DB");
// thc hin cp nht d liu
cmd = new MySqlCommand("update list set name='Updated Name' where
id=?id");
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("?id", "1");
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
Regular Expressions
Regular Expression l mt chui nhng k t dng biu din (thay th) cho mt
chui no . Regular Expression l mt k thut kh s dng phng php so
snh. Bng sau th hin nhng biu thc thng s dng nht.
M t kim
tra
Cng thc
[
Mt
tp
hp k t
M t
V d
c s dng so
snh bt k mt k t
nm trong [ ]. C th
c s dng xc
nh mt chui k t
bt u v kt thc
bng vic s dng du
gch ngang, nh [a-z]
P[0-5]
Kim tra m sn phm bt u vi
k t P v theo sau bi nhng s
trong khong 0 n 5.
c s dng
snh t, s,
gch di
\w{8,20}
kim tra mt khu vi di nh
nht l 8 k t v ln nht l 20
k t.
\w
so
t
{n}
115
M t kim
tra
Cng thc
Khong
M t
V d
c s dng so
snh mt biu thc
lp li n ln
P[0-9] {4}
kim tra mt m sn phm bt u
bng k t P v theo sau bi 4 s
nm trong khong 0 n 9
c s dng kim
tra mt k t bt k
ngoi tr k t xung
dng.
2.12.2008
kim tra nh dng d liu c
dng: 1/12/2008, 2-12-2008, 2 12
2008 v c 2.12.2008.
http://\S\S\S\S\S\S.\S\S\S.\S\S
kim tra a ch web c c nhp
ng nh, http://itgatevn.com.vn
.
K
k
bt
Mt k t
khng phi
k
t
khong
trng
\S
+
Mt
hoc
nhiu
k
t
Bt k mt
k t n
\S+@\S+\. S+
Kim tra mt a
pta30000@gmail.com
ch
nh
?
c s dng kim
tra bt k mt k t
n no trc n
programs?
xc nh k t s trong ch
programs c th c hoc khng c.
c s dng kim
tra mt k t bt k
bao
gm:
khong
trng, tabs, v k t
xung dng.
\smore
kim tra khong trng trc mt
t.
c s dng kim
tra
mt
s
trong
khong 0 n 9
\d{5}
Kim tra mt s c nm ch s nh
11101
c s dng kim
tra mt k t theo
sau du gch cho
ngc
\~
kim tra ngi dng nhp k t
~ vo cha.
c s dng kim
tra khng c hoc c
nhiu k t trong
biu thc
P*\d{3}
ki tra u vo ca mt m sn
phm bt u bng k t P nh
P333,P777
\s
Mt k t
trng bt
k
\d
Mt s bt
k
\
K
Escape
*
Khng
c
hoc
c
nhiu ch
Regular Expression gip kim tra d liu do ngi dng nhp vo t ng dng,
trnh nhng li xut pht t vic nhp d liu ca chng trnh.
116
Mt s bi c khc
nh dng hin th cho kiu d liu Double, Float trong C#
Nhng v d sau ch cho bn cch thc nh dng nhng s kiu fload sang kiu k
t trong CS bng cch s dng hm static ca lp String l String.Format.
S sau du chm
V d nh dng ny chuyn i mt s double sang string vi kt th l 2 ch s
thp phn ng sau. nh dng s dng l: 0.00".
String.Format("{0:0.00}", 123.4567); // "123.46"
String.Format("{0:0.00}", 123.4); // "123.40"
String.Format("{0:0.00}", 123.0); // "123.00"
V d tip theo cho php bn rt gn nhng s thp phn tha ng sau du chm,
s dng nh dng 0.##".
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
S trc du chm thp phn
S dng nh dng: 00.0, chng ta s c kt qu l s trc du chm lc no
cng ln hn hoc bng 2, v sau n l mt ch s..
String.Format("{0:00.0}", 123.4567); // "123.5"
String.Format("{0:00.0}", 23.4567); // "23.5"
PROFESSIONAL PROGRAMMING FOR REAL LIFE
Phm Tun Anh Cng ty Xa L Thng Tin (iNGA Co.,Ltd.)
117
0.0);
0.0);
0.0);
0.0);
//
//
//
//
"0.0"
"0"
".0"
""
V sau y l mt s v d vui.
String.Format("{0:my number is 0.0}", 12.3); // "my number is 12.3"
String.Format("{0:0aaa.bbb0}", 12.3); // "12aaa.bbb3"
118
[pk_image]
PRIMARY
KEY
NOT
Trong ,
119
120
con.Open();
int numofwsAffected = cmd.ExecuteNonQuery();
con.Close();
return numofwsAffected;
}
V by gi, file hnh c lu tr trong c s d liu ca bn.
THAM KHO
Cc bn c th tham kho thm kin thc ti mt s a ch sau y
-
121