Upload
vietnam-cafejj
View
232
Download
0
Embed Size (px)
Citation preview
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
1/272
Nguyn Hong H - Khoa CNTT-HKH 1
Ni dung hc
Tng quan v .Net FrameWork
S dng IDE
Gii thiu NNLT C#
WinForm
LINQ: LINQ TO SQL
Xy dng ng dng Web
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
2/272
Nguyn Hong H - Khoa CNTT-HKH 2
CHNG I
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
3/272
Nguyn Hong H - Khoa CNTT-HKH 3
Gii thiu
.NET Framework l mi trng tch hpnginha vic pht trin v thc thi cc ng dng trnInternet, desktop v cc thitb di ng .
Cc mc tiu chnh: Cung cpmt mi trnghngitngnht quncho nhiuloingdng
Cung cpmt mi trnggim ti thius xung t
phin bn. Cung cp mt mi trng linh ng, da trn cc
chuncchngnhn c thcha trn btchiu hnh no.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
4/272
Nguyn Hong H - Khoa CNTT-HKH 4
Kin trc ca .NET Framework
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
5/272
Nguyn Hong H - Khoa CNTT-HKH 5
Kin trc ca .NET Framework
CLR (Common Language Runtime):Qun l sthc thi m lnh v ttc cc tc v lin quan nn: bin dch, qun l b nh, bo mt, qun ltuynon.M lnhthc thi trong CLR chia lm 2 loi:- m cqun l- m khngcqun ll m lnh khng ci t
nhng yu cuthc thi trong CLRchnghnnh COM hoc cc thnh phnda trn WindowsAPI.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
6/272
Nguyn Hong H - Khoa CNTT-HKH 6
Kin trc ca .NET Framework
FCL(Framework Class Library ) l thvinkiu d liu c th ti s dng (gm ccclass, structure, ) dnh cho cc ngdng
thc thi trong .NET.
Tt c cc ngn ng h tr .NETFramework usdng thvin lp dngchung ny.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
7/272Nguyn Hong H - Khoa CNTT-HKH 7
Cc bc thc hin ca Cttruyn thng
Source
Code
Compiler
Executable
Code
Code
Executed
R
U
N
TI
M
E
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
8/272Nguyn Hong H - Khoa CNTT-HKH 8
Cc bc thc hin ca Cttruyn thng
Cc ngn ng trc y c chngtrnh dch ring v c mi trng chyring ca n.
Trong .NET, chng trnh dch dch mngun vo mt "Intermediate Language(IL) v runtime c thay th bi CLR
(Common Language Runtime).
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
9/272Nguyn Hong H - Khoa CNTT-HKH 9
Cc bc thc hin ca cc ct .NET
1st Compliation
2nd Compliation
.NET
SourceCode
Language
Compiler
MSIL
+Metadata
CLR
Machine
code
Code
executed
Cc chng trnh .NET c dch 2 ln: ln u chm, ln th 2 tngi nhanh hn.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
10/272Nguyn Hong H - Khoa CNTT-HKH 10
Cc bc thc hin ca cc ct .NET
Chng trnh ngun trc ht s c bindch v ng gi thnh mtkhigi l assembly(l tphp cc thnh phncng gi trongfile exe hoc dll). Khi ny scha cc m lnhngn ng trung gian (IL) v cc metadata m tthng tin cnthit cho shotngcakhi.
Mi khi c yu cu thc thi assembly ni trn,CLR s dng trnh bin dch JIT (Just-in-Time)cami trng thc thichuyni IL chatrong n sang dngm lnhcthca mykhingdngthcsthc thi.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
11/272Nguyn Hong H - Khoa CNTT-HKH 11
Cc bc thc hin ca cc ct .NET
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
12/272Nguyn Hong H - Khoa CNTT-HKH 12
Cc kiu d liu c s ca CTS
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
13/272Nguyn Hong H - Khoa CNTT-HKH 13
Chng 2
Gii thiu Visual Studio.NET
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
14/272Nguyn Hong H - Khoa CNTT-HKH 14
S dng IDE Microsoft Visual Studio 2008
Khi ng Microsoft Visual Studio 2008. File New
Project to mi mt project
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
15/272Nguyn Hong H - Khoa CNTT-HKH 15
Chia s IDE
VS.NET cung cp IDE cho tt c cc ngn
ng ca n.
Gip cho ngi lp trnh xy dng 1
chng trnh nhanh chng v hiuqu
Khi VS.NET khi ng, th trang StartPagec hin th.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
16/272Nguyn Hong H - Khoa CNTT-HKH 16
Chia s IDE [3]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
17/272Nguyn Hong H - Khoa CNTT-HKH 17
Design, Split, Source (WebForm) Design:ch thit k giao din Source:Hin th m HTML t ng pht sinh khi thit k
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
18/272Nguyn Hong H - Khoa CNTT-HKH 18
Solution Explorer
Solution Explorer litk cc projects v cc
file anghotng hin th SolutionExplorer, nhn Ctrl+Alt+L(View|Solution Explorer )
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
19/272
Nguyn Hong H - Khoa CNTT-HKH 19
ToolBox
Bao gm cc iukhin trn Web form vWin form, ActiveX
controls, XML Webservices, cc thnh
phn HTML v cc i
tng. hin th Toolbox,
nhn Ctrl+Alt+X
(View|Toolbox).
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
20/272
Nguyn Hong H - Khoa CNTT-HKH 20
Server Explorer
Server Explorer Lptrnh trn CSDL m
khng cn s dngVS.NET IDE.
hin th ServerExplorer, nhn
Ctrl+Alt+S(View|Server Explorer)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
21/272
Nguyn Hong H - Khoa CNTT-HKH 21
Class View
Class view hinth cclp, phng thc vthuc tnh xy
dng. hinth Class View,
nhn Ctrl+Alt+C
(View|Class View).
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
22/272
Nguyn Hong H - Khoa CNTT-HKH 22
Properties Window
Properties window thit lp ccthuc tnh cc iu
khin, lp vprojects.
hin th
Properties Window,nhn F4.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
23/272
Nguyn Hong H - Khoa CNTT-HKH 23
K thut IntelliSense
Thng bo cho ngi lp trnh c phpng v cho php hon thnh t ng 1cu lnh
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
24/272
Nguyn Hong H - Khoa CNTT-HKH 24
S kin v p ng s kin[1]
Ta c th tng tc gia cc i tng khc nhaubn trong 1ngdng,gia 1 itng v itngbn ngoi thng qua skin v pngskin.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
25/272
Nguyn Hong H - Khoa CNTT-HKH 25
S kin v p ng s kin[2] hin th tt cc cc s kin ca iu khin:
Chn iu khin Kch vo button Event trn ca s Properties
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
26/272
Nguyn Hong H - Khoa CNTT-HKH 26
V d x l s kin
S kin
p ng s kin
Ngi dngchn nt
Design:hin th b cc ca trangSource:Hin th m t ng pht sinh khito trang Web.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
27/272
Nguyn Hong H - Khoa CNTT-HKH 27
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
28/272
Nguyn Hong H - Khoa CNTT-HKH 28
Ni dung
Gii thiu
Bin v cc kiu d liu
Cc cu trc iu khin: if, switch
Cc cu trc lp; for, while, do while,
foreach
LIST, File vn bn.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
29/272
Nguyn Hong H - Khoa CNTT-HKH 29
GII THIU V C#
L NNLT n gin, hin i, an ton vhng i tng
L ngn ng mnh nht trong .NET
Thay th cho C++ C c php ging C++, Java
S dng con tr d dng hn trong C++
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
30/272
Nguyn Hong H - Khoa CNTT-HKH 30
GII THIU V C#
- bitoncngiiquyt l mt Solution.
- Mt solution bao gm mt hoc nhiuproject.
- Mt solution, nu c nhiu project th nncto ra trong mtthmc ring cthcha cc project trong n.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
31/272
Nguyn Hong H - Khoa CNTT-HKH 31
C php n gin ca 1 Project
Using cc Namespace[Namespace Ten]
{
- Tp hp cc lp}
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
32/272
Nguyn Hong H - Khoa CNTT-HKH 32
Bin
Khai bo theo c php:
Mc truy cp Kiu Tn bin
public
protected
private
int
string
...
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
33/272
Nguyn Hong H - Khoa CNTT-HKH 33
Cc kiu s nguyn
0:264-1S nguyn khng du 64-bitSystem.UInt64ulong
0:232-1S nguyn khng du 32-bitSystem.UInt32uint
0:216-1S nguyn khng du 16-bitSystem.UInt16ushort
0:28-1S nguyn khng du 8-bitSystem.Bytebyte
-263:263-1S nguyn c du 64-bitSystem.Int64long-2
31
:231
-1S nguyn c du 32-bitSystem.Int32int
-215:215-1S nguyn c du 16-bitSystem.Int16short
-27:27-1S nguyn c du 8-bitSystem.SBytesbyte
Vng biu din(min:max)
M tKiu trongCTS
Tn
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
34/272
Nguyn Hong H - Khoa CNTT-HKH 34
Kiu s thc, Boolean, k t
Kiu s thc: float, double
Kiu Boolean: bool: true|false
Kiu k t: char Biudin 1 k t 16-bit (Unicode) Cc hngkiu k t c gn bng cch ng trongcpdu nhy n, v d 'A'.
Ki u d liu tham chi u
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
35/272
Nguyn Hong H - Khoa CNTT-HKH 35
Ki u d liu tham chi uc nh ngha sn
Chui k t UnicodeSystem.Stringstring
Kiudliugc,mikiudliu khc
trong CTS ukthaty(kccc kiudliu gi tr)
System.Objectobject
M tKiu CTSTn
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
36/272
Nguyn Hong H - Khoa CNTT-HKH 36
V d
protected void Page_Load(object sender, EventArgs e)
{
object t;
t = (object) 5;
string[] st = new string[2] { "ab","cd" };
object[] t1;
t1 = st;Response.Write(t1[1].ToString());
}
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
37/272
Nguyn Hong H - Khoa CNTT-HKH 37
Cc phng thc trn chuiprotected void Page_Load(object sender, EventArgs e)
{ string st1 = " Nguyen Anh Trung ";
string st2 = "le Tien Tang";
st1 = st1.Trim();
Response.Write(string.Format("Chieu dai chuoi la {0}:\n",
st1.Length));Response.Write(string.Format("Ky tu tai chi so thu 3 la {0}", st1[3]
string ten1 = st1.Substring(st1.LastIndexOf(' ') + 1);
string ten2 = st2.Substring(st2.LastIndexOf(" ") + 1,
st2.Length - st2.LastIndexOf(" ") - 1);
Response.Write (string.Format("Ten2=ten1:{0}",ten2.Equals(ten1)));
Response.Write(string.Format("so sanh ten1 voi ten 2: {0}",ten1.CompareTo(ten2)));
}
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
38/272
Nguyn Hong H - Khoa CNTT-HKH 38
Cc phng thc trn chuiprotected void Page_Load(object sender, EventArgs e)
{ string st1 = "Nguyen Anh Trung ";
Response.Write(string.Format( "Tim chuoi con {0}",
st1.Contains("yen")));
st1 = st1.Replace("Nguyen", "Le");Response.Write(st1);
st1 = st1.Remove(0, 3);
Response.Write(st1);
st1 = "Le nam|tink26|dhkh";
string[] ds = st1.Split('|');
Response.Write(string.Format("ten:{0},lop:{1},truong{2}",
ds[0], ds[1], ds[2]));
Cc ton t
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
39/272
Nguyn Hong H - Khoa CNTT-HKH 39
Cc ton t
checked uncheckediukhin Overflow exception
Sizeof(Kiu)Thng tin vkiu
newToitng
?:iukin ()p kiu
[]Indexing (cho array v cc indexers)
.Truy xut thnhphn
= += -= *= /= %= &= |= ^= =Php gn== != < > =So snh
>Dch bit
++ --Tng v gim
+Cngchui&& || !Logic
+ - * / %Shc
K hiuLoi ton t
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
40/272
Nguyn Hong H - Khoa CNTT-HKH 40
Lung iu khin ca chng trnh
Cc cu lnh r nhnh if
switch
Cc cu lnh lp for
while
do
foreach
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
41/272
Nguyn Hong H - Khoa CNTT-HKH 41
Cu lnh ifint i = 10;
if (i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
42/272
Nguyn Hong H - Khoa CNTT-HKH 42
Cu lnh Switch...
int i = 2;
switch (i)
{
case 1:
Response.Write("one");
break;case 2:
Response.Write("two");
break;
default:
Response.Write("another value");
break;}
...
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
43/272
Nguyn Hong H - Khoa CNTT-HKH 43
Cu lnh Forint s = 0;
for (int i=1; i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
44/272
Nguyn Hong H - Khoa CNTT-HKH 44
Cu lnh while
int i = 1;int s = 0;
while (i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
45/272
Nguyn Hong H - Khoa CNTT-HKH 45
Cu lnh Foreachint[] a = new int[3];
a[0] = 10;a[1] = 20;
a[2] = 30;
foreach (varb in a){
Response.Write(b);
}
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
46/272
Nguyn Hong H - Khoa CNTT-HKH 46
ArrayList, LIST
L mng ng, mi phn t l mt object
Namespace: System.Collections
Khai bo:ArrayList = new ArrayList();List =new List()
List =new List ()
C h th t A Li t
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
47/272
Nguyn Hong H - Khoa CNTT-HKH 47
Cc phng thc trn ArrayList,List
Add(object): Chn thm 1 phn t vo cuimng
Clear(): Xo tt c cc phn t
Contains(object): Tm object trong mng IndexOf(object): Tm ch s ca object trongmng (-1)
RemoveAt(index): Xo phn t th index
Thuc tnh: count: cho bit s phn t trongmng
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
48/272
Nguyn Hong H - Khoa CNTT-HKH 48
Thao tc trn File
Namespace: System.IO;
Cc i tng thao tc trn File: Stream,StreamReader, StreamWriter, FileStream.
Thao tc trn file vn bn: StreamReader,StreamWriter.
M file vn bn c:StreamReader = new StreamReader(dd"[,Encoding]);
M file vn bn ghi:StreamWriter = new StreamWriter (dd[, bool
append][,Encoding])
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
49/272
Nguyn Hong H - Khoa CNTT-HKH 49
Cc phng thc trn StreamReader
Close(): ng file
Peek(): Tr v k t tip theo, -1;:EOF
Read(): c k t tip theo ReadBlock(): c dy cc byte
ReadLine(): c 1 dng
ReadToEnd(): c ht file
Cc phng thc trn StreamWriter
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
50/272
Nguyn Hong H - Khoa CNTT-HKH 50
Cc phng thc trn StreamWriter
Close(): ng file
Write WriteLine: ghi file
V d:StreamWriter f = new
StreamWriter("d:\\tt.txt",true,Encoding.Unicode);
f.WriteLine("cng");
f.Write("abc");
f.Close();
S
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
51/272
Nguyn Hong H - Khoa CNTT-HKH 51
V d StreamReaderusing System;
using System.IO;
StreamReader f = new StreamReader("d:\\tt.txt");
string ht;while(f.Peek()>=0)
{
ht = f.ReadLine();
Response.Write(ht);
}
f.Close();
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
52/272
DataTable- Name space: using System.Data;
-To bng:DataTable bien = new DataTable("tenbang");
To ct: bien.Columns.Add(tencot");
- To thm dng:DataRow dong=bien.NewRow();
Dong[tencot]=gia tri
dt.Rows.Add(dr);dt.AcceptChanges();
- Bien.Rows: tr v tp hp cc dng- Bien.Coumns: Tr v tp cc ct
V d v DataTable
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
53/272
V d v DataTableprotected void Page_Load(object sender, EventArgs e)
{ DataTable dt = new DataTable("Sach");
// to ra 2 ct (field) ca bng Sachdt.Columns.Add("Masach"); // To ra ct MaSach
dt.Columns.Add("Tensach"); // To ra ct TenSach
DataRow dr = dt.NewRow();//To thm 1 dng mi
dr["Masach"] = "s1"; //Nhp d liu cho ct m sch
dr["TenSach"] = "tin";dt.Rows.Add(dr); //Thm dng vo dt
dr = dt.NewRow(); //To thm 1 dng mi
dr["Masach"] = "s2";
dr["TenSach"] = "hoa";
dt.Rows.Add(dr);dt.AcceptChanges();
for(int i=0;i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
54/272
Nguyn Hong H - Khoa CNTT-HKH 54
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
55/272
Nguyn Hong H - Khoa CNTT-HKH 55
Ni dung
Lp i tng Hm dng
Hm hu
Trng
Phng thc
L i t
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
56/272
Nguyn Hong H - Khoa CNTT-HKH 56
Lp i tngMctruycp class :
{ - Hm dng (Constructors) Hm hu (Destructors) Hng (Constants) Trng (Fields) Phng thc (Methods)
Thuc tnh (Properties) Ch mc (Indexers) S kin (Events) Con tr hm (Delegates)
Lp con (Classes) Giao din (Interfaces) Cu trc (Structs)
}
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
57/272
Nguyn Hong H - Khoa CNTT-HKH 57
Mc truy cp
Bin hocphng thc ch c th c truy xut tbn trong kiudliu m n thucv
private
Bin hocphng thc c th c truy xut trongphm vi assembly hin ti, hoc t cc kiu d liudnxuttkiudliucha n
protected
internal
Bin hocphng thc ch c th truy xut t bntrong kiu d liu m n thuc v, hoc cc kiu dliudnxut
protected
Binhocphngthcch c th truy xut trongphmvi cng assembly
internal
Binhocphngthc c thc truy xuttbtcni no
public
M tMc truy cp
V d
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
58/272
Nguyn Hong H - Khoa CNTT-HKH 58
V dpublic class Class_b
{ private class Class_b1
{ }
public class Class_b2
{ }
}
class Program
{ public void test()
{Class_b t2 = new Class_b();
Class_b.Class_b1 t21 = new Class_b.Class_b1();
Class_b.Class_b2 t22= new Class_b.Class_b2();
}
H d (C t t )
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
59/272
Nguyn Hong H - Khoa CNTT-HKH 59
Hm dng (Constructors)
L mt loi c bit ca phng thc trong mt lp c gi khi mt lp c to.
Thng c s dng khi to cc gi tr trongmt lp.
Tn trng vi tn lp
Khng tr v gi tr
Nu khng to ra hm dng C# s to ra hm dng
ngm nh Mtlp c th c nhiu hm dngnhng khc nhau
vslnghockiuca tham s
V d C
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
60/272
Nguyn Hong H - Khoa CNTT-HKH 60
V d vConstructorsusing System;
public class Person
{public string Ten,dc=Khong co ;public Person(string Ten){
this.Ten = Ten;}public Person(string Ten,string dc)
{
this.Ten = Ten;this.dc = dc;
}}
V d C t t
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
61/272
Nguyn Hong H - Khoa CNTT-HKH 61
V d vConstructors
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
person p1 = new person("hung");
Response.Write(p1.Ten + p1.dc);
person p2 = new person("Nga","hue");
Response.Write(p2.Ten + p2.dc);
}
}
D t t
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
62/272
Nguyn Hong H - Khoa CNTT-HKH 62
Destructor
Destructors trong C# gi l b thu gom rcGarbage Collectors. B thu gom rc s gii phng b nh khi
i tng khng cn yu cu hoc tham
chiu. Destructors khai bo nh sau:
~()//ging tn lp
{//cc ci t ca ngi lp trnh
}
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
63/272
Nguyn Hong H - Khoa CNTT-HKH 63
Cc trng (Fields)
Lu tr gi tr
C php:
Mc truy cp: public, private, protected,internal, protected internal
Kiu: Kiu gi tr c nh ngha sn (int,char )
Kiu tham chiu: lp, struct, mng, chui,.
V d
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
64/272
Nguyn Hong H - Khoa CNTT-HKH 64
V dnamespace Vidu
{
class Class_Lop{ }
class SinhVien
{ public string hoten;
private bool GioiTinh;protected DateTime NgaySinh;
internal float[] DsDiem = new
float[100];
Class_Lop Lop= newClass_Lop();
}
class Program
{
static void Main(string[] args)
{
SinhVien sv =new SinhVien();
sv.hoten = "Nguyen Nam";//sv.GioiTinh = false;
//sv.NgaySinh =
DateTime.Parse("12/10/79");
sv.DsDiem[0] = 5;
}
}}
Trng tnh [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
65/272
Nguyn Hong H - Khoa CNTT-HKH 65
Trng tnh [1]
c khai bo trong 1 lp Khi sdng khng cnphito ra lpcha
trngtnh
Khi khai bo ch cn dng static trc tn
bin
Truy xut: .tn trngtnh
V d trng tnh
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
66/272
Nguyn Hong H - Khoa CNTT-HKH 66
V d trng tnhusing System;
public class List{
public static int Dem= 0;public List()//Hm dng: cgi khi tolp{Dem++;}
}
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(List.Dem);
List n1 = new List();Response.Write(List.Dem);List n2 = new List();Response.Write(List.Dem);}
}
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
67/272
Nguyn Hong H - Khoa CNTT-HKH 67
Phng thc(method)
L tp hp cc cu lnh c khai bo trong lp hoc cu trc,
phi ch r mc truy cp, tn, kiu tr
v,danh sch cc tham s. Nu khng ctham sphi c cpdungoc Phng thc khng tr v gi tr c kiu
trv l void Dng return trv gi tr caphng
thc
Tham chiu ref and out [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
68/272
Nguyn Hong H - Khoa CNTT-HKH 68
Tham chiu ref and out [1]using System;
public class Point
{
int x;
int y;
public Point(int x,int y)
{
this.x = x;
this.y = y;
}
public voidGetPoint(int x,int y)
{x = this.x;
y = this.y;
}
}
Tham chiu ref and out [2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
69/272
Nguyn Hong H - Khoa CNTT-HKH 69
Tham chiu ref and out [2]public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int x = 0; //int x; --> Error
int y = 0; //int y; --> Error
Point p = new Point(100,200);p.GetPoint(x,y);
Response.Write("({0},{1})",x,y);
}
}
Output:
(0 0) Tham chiu ref and out [3]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
70/272
Nguyn Hong H - Khoa CNTT-HKH 70
Tham chiu ref and out [3]using System;
public class Point
{
int x;
int y;
public Point(int x,int y)
{
this.x = x;
this.y = y;
}
public voidGetPoint(ref int x,ref int y)
{x = this.x;
y = this.y;
}
}
Tham chiu ref and out [4]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
71/272
Nguyn Hong H - Khoa CNTT-HKH 71
Tham chiu ref and out [4]public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int x = 0; // int x; --> Error
int y = 0; // int y; --> Error
Point p = new Point(100,200);p.GetPoint(ref x,ref y);
Console.WriteLine("({0},{1})",x,y);
}
} Output:
(100,200)-phi khi to gi tr cho cc tham s-Khi xy dng v gi phng thc phi dng ref
Tham chiu ref and out [5]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
72/272
Nguyn Hong H - Khoa CNTT-HKH 72
Tham chiu ref and out [5]using System;
public class Point
{
int x;
int y;
public Point(int x,int y)
{
this.x = x;
this.y = y;
}
public voidGetPoint(out int x,out int y)
{x = this.x;
y = this.y;
}
}
Tham chiu ref and out [6]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
73/272
Nguyn Hong H - Khoa CNTT-HKH 73
Tham chiu ref and out [6]public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int x;
int y;
Point p = new Point(100,200);p.GetPoint(outx,outy);
Console.WriteLine("({0},{1})",x,y);
}
}
Output:(100,200)
Khng cn khi to gi tr cho cc tham s
Khi xy dng v gi phng thc phi dng out
Danh sch cc tham s c chiu di thay i [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
74/272
Nguyn Hong H - Khoa CNTT-HKH 74
Danh sch cc tham s c chiu di thay i [1]
C# cho php khai bo 1 tham snhng khigiphngthc th slng tham s c th
thay i
V dnh WriteLine()
Sdng t kho params khai bo tham
s c chiu di thay i.
K tha
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
75/272
Nguyn Hong H - Khoa CNTT-HKH 75
K tha
- C# ch h tr n ktha, tc l mt lpchc th k tha nhiunhtl tmtlp cha
- Lp c s nht trongC# l lp System.Object
class LopCon : LopCha
{ Cai dat lop con}
V d v k tha [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
76/272
Nguyn Hong H - Khoa CNTT-HKH 76
V d v k tha [1]using System;
public class Person
{
protectedstring name; //protected Field
public Person(string name) //Function as a Constructor
{this.name = name;
}
}
public class Employee:Person{public Employee(string name):base(name){}
}
V d v k tha [2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
77/272
Nguyn Hong H - Khoa CNTT-HKH 77
[ ]public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e){
Person p1 = new Person("Harry Potter");
Respone.Write(p1.name);
}}
V d v k tha [3]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
78/272
Nguyn Hong H - Khoa CNTT-HKH 78
V d v k tha [3] Person l lp c s (lp cha).
Employee l lp dn xut (lp con) t lpPerson, v th:
N k tha tt c cc d liu v hm thnhvin ca lp cha (tr private)
Constructors khng t ng k tha ln lpcha, do ngi s dng phi ch r:
public Employee(string name):base(name){}
Hm np chng (Overloading )
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
79/272
Nguyn Hong H - Khoa CNTT-HKH 79
p c g (O e oad g )
Hm np chng l hm trng tn trong mt lp
nhng khc nhau v s lng v kiu ca cc
tham s
Khng npchngda vo tn tham s v kiutrvca cc tham s.
V d [2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
80/272
Nguyn Hong H - Khoa CNTT-HKH 80
[ ]class TinhDt
{public double Dt(double r)
{
return ((double)Math.PI*r*r);
}
public double Dt(double a,double b)
{ return a*b;
}
public double Dt(double a,double b,double c)
{ double p=(a+b+c)/2;
return Math.Sqrt(p*(p-a)*(p-b)*(p-c));
}
V d [3]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
81/272
Nguyn Hong H - Khoa CNTT-HKH 81
V d [3]
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TinhDt DienTich=new TinhDt();Console.WriteLine("Dt HT {0}",DienTich.Dt(3));
Console.WriteLine("Dt HCN {0}",DienTich.Dt(3,4));
Console.WriteLine("Dt HTG{0}",DienTich.Dt(3,4,5));
}
}
Hm ghi (Overriding) [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
82/272
Nguyn Hong H - Khoa CNTT-HKH 82
Hm ghi (Overriding) [1]
Hm ghi l hm ging nhau trn c lpcha v lp con.
ghi mt hm c trn lp cha: Khai bo mt hm mi trong lp con vi tn
ging vi lp cha.
S dng tnew.
Hm o (Virtual Functions) [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
83/272
Nguyn Hong H - Khoa CNTT-HKH 83
Hm o (Virtual Functions) [1]
Cch xy dng hm ogingnh hm ghi nhng s dng t kho virtual tronghm calp cha v override trong hm calp con
Khi gi hm, trnh bin dchs nhn vo lpthcscto ra v gi hm tngngtrn lp ny
Giao din (Interfaces)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
84/272
Nguyn Hong H - Khoa CNTT-HKH 84
Giao din (Interfaces)
Giao dingingnhlptrutng Cha cc phng thc tru tng nhng
khng ci t.
Mt lpktha ln 1 giao dinphi ci tttc cc phngthc trn giao din.
Mtlpchktha ln 1 lp khc nhng c th
ktha trn nhiu giao din.
V d [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
85/272
Nguyn Hong H - Khoa CNTT-HKH 85
V d [1]
using System;
interfaceMusic
{
voidPlayMusic(string filename);
voidEndPlay();
}
V d [2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
86/272
Nguyn Hong H - Khoa CNTT-HKH 86
Vd [2]public classWinamp:Music
{
publicWinamp(){
}
public voidPlayMusic(string filename)
{
}
public voidEndPlay(){
}
}
THUC TNH
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
87/272
Nguyn Hong H - Khoa CNTT-HKH 87
THUC TNH
Giithiu
Cc loicathuc tnh
Thuc tnh v trng Thuc tnh v phng thc
Thuc tnh tnh
Gii thiu [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
88/272
Nguyn Hong H - Khoa CNTT-HKH 88
Gii thiu [1] Thuc tnh trong 1 lp c s dng ly
v thay i gi tr trong lp. Mt thuc tnh thng c 2 khi lnh:
Get: tr v mt gi tr
Set: Gn mt gi tr mi T kho value c s dng xc nh gi tr
c gn trong khi set.
Gingnh hm thuc tnh c th dng btvirtual, override, abstract, static
V d [2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
89/272
Nguyn Hong H - Khoa CNTT-HKH 89
[ ]using System;
public class Person{
string name; // Field
public stringName // Property
{
get{
return (name);
}
set
{
name = value;
}
}
}
V d [3]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
90/272
Nguyn Hong H - Khoa CNTT-HKH 90
[ ]public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Person p = new Person();
p.Name = "John Smith";
Response.Write("Person name is {0}",p.Name);}
}
Output:Person name is John Smith
Cc loi thuc tnh
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
91/272
Nguyn Hong H - Khoa CNTT-HKH 91
Read/Write: Thuc tnh c c get v set.
Read-Only: Thuc tnh ch c get.
Write-Only: Thuc tnh ch c set.
X l ngoi l (Exception Handling)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
92/272
Nguyn Hong H - Khoa CNTT-HKH 92
g ( p g)
Dng Trying v Catching
Kin trc cangoil
Truynngoil Sdng Finally
Ngoi l [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
93/272
Nguyn Hong H - Khoa CNTT-HKH 93
g [ ]
Ngoi l c pht sinh khi chy chngtrnh bli.
Ngoil cung cpy thng tin vlixyra.
Ki n trc phn t ng ca ngoi l[2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
94/272
Nguyn Hong H - Khoa CNTT-HKH 94
[2]
Exception
IOException
System Exception
OutOfMemoryException
OverflowException
CoreException
NullReferencException
Trying v Catching [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
95/272
Nguyn Hong H - Khoa CNTT-HKH 95
y g g [ ]
Khi try chaonchng trnh Khi catch x l li, khi c lixy ra.
Dng 1 khi try nhng c th nhiu khi
catch
Khng c try v catch chng trnh dngli(treo) v a ra li.
Trying v Catching [2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
96/272
Nguyn Hong H - Khoa CNTT-HKH 96
y g g [ ]using System;class Test
{public static voidMain(){int Zero = 0;try{
int j = 22 / Zero;}catch (Exception e){
//X l li
}
} Cc lnh sau catch}
Trying v Catching [3]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
97/272
Nguyn Hong H - Khoa CNTT-HKH 97
y g g [ ]int Zero = 0;try
{ int j = 22 / Zero;}catch (DivideByZeroException e){
//X l li1
}catch (Exception e){
////X l li 2
}
Trying v Catching [4]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
98/272
Nguyn Hong H - Khoa CNTT-HKH 98
y g g
Ktquhinth:
Loi 1:Attempted to divide by zero.
Sau catch
Truyn ngoi l [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
99/272
Nguyn Hong H - Khoa CNTT-HKH 99
Trong 1 strnghp chng ta khng x l
khi lixy ra, chng ta cntruyn cc li nyn hm gi n
C 3 cch lm iu ny:
Khng x l li Truynlin hm cgi
Truynlicthn hm cgi.
Truyn ngoi l[2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
100/272
Nguyn Hong H - Khoa CNTT-HKH 100
Khng x l liusing System;
public class SumClass{
int sum= 0;
int count = 0;
int average = 0;
public voidCalculateAverage(){ try
{
average = sum/count;
}catch{}
}
}
Truyn ngoi l[4]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
101/272
Nguyn Hong H - Khoa CNTT-HKH 101
Btli, sau truynli ny n hm cgiusing System;
public class SumClass{ int sum= 0;
int count = 0;
int average = 0;
public voidCalculateAverage(){ try
{
average = sum/count;
}
catch (DivideByZeroException e){throw e;
}
}
}
Truyn ngoi l[6]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
102/272
Nguyn Hong H - Khoa CNTT-HKH 102
X l li, sau truyn cc lix l n hm cgi.
using System;public class SumClass
{ int sum= 0;
int count = 0;
int average = 0;
public voidCalculateAverage(){ try
{
average = sum/count;
}
catch (DivideByZeroException e){
throw (new DivideByZeroException(Loi roi:"));
}
}
S dng Finally
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
103/272
Nguyn Hong H - Khoa CNTT-HKH 103
Khi Finally cha on chng trnh lun lun
thchin cho d c pht sinh li hay khng?try{
//onchng trnh
}
catch
{
//X l li
}
finally{
//onchng trnh lun thchin
}
Thc hnh
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
104/272
Nguyn Hong H - Khoa CNTT-HKH 104
To 1 Project vi tn ThucHanh
To file ds.txt (Project -> Add New Item -> TextFile -> Name: ds.txt) vini dung:
sv1|L thng nam|5|Tink32
sv2|ch|9|TinK32sv3|vn Nam|10|Tink31
Sv4|Nguyn Hong Nam|2|TinK31
Sv5|Trndng|3|HoaK19
Thc hnh
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
105/272
Nguyn Hong H - Khoa CNTT-HKH 105
Tolp CauHinh ktnin file ds.txtusing System.IO ;namespace ThucHanh{
public class CauHinh
{public static StreamReader f;public CauHinh(string DD){
f = new StreamReader(DD);}
}
}
To Lp SinhVien
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
106/272
using System.Collections.Generic ;
namespace ThucHanh
{ public class SinhVien{
private string masv;
public string Masv
{
get { return masv; }
set { masv = value; }
}
private string hoten;
public string Hoten{
get { return hoten; }
set { hoten = value; }
}
private double dtb;
public double Dtb
{get { return dtb; }
set { dtb = value; }
}
private string tenlop;
public string Tenlop
{
get { return tenlop; }
set { hoten = value; }
}public SinhVien(string masv, string ht,
double dtb, string tenlop)
{ this.masv = masv; this.hoten = ht;this.dtb = dtb; this. tenlop= tenlop
} }}
To 1 lp: LopHoc cha cc sinh vin
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
107/272
using System.Collections.Generic ;
using System.Data;
namespace ThucHanh
{
public class LopHoc
{
public List LstSinhvien ;public DataTable DtSinhVien ;
public LopHoc()//Hm dng{
LstSinhvien = new List();//To List
DtSinhVien = new DataTable("Sinhvien"); //Tao DataTable
DtSinhVien.Columns.Add("Masv");//To cc ct ca bngDtSinhVien.Columns.Add("Hoten");
DtSinhVien.Columns.Add("DTB");
DtSinhVien.Columns.Add(TenLop");
while (true)//Duyt file ds.txt{
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
108/272
string st = CauHinh.f.ReadLine();//c ra 1 dngif (st == "" || st == null) { CauHinh.f.Close(); break; }
string[] tam = st.Split('|');//Tch ra cc thng tinSinhVien sv = new SinhVien(tam[0],tam[1],double.Parse(tam[2]), tam[3] );
LstSinhvien.Add(sv);//Np d liu vo ListDataRow dr = DtSinhVien.NewRow(); //To 1 dng mi trn bngdr["masv"] = tam[0]; dr["hoten"] = tam[1];
dr["DTB"] = double.Parse(tam[2]); dr[tenlop"] = tam[3];DtSinhVien.Rows.Add(dr);
DtSinhVien.AcceptChanges();
}
}
}
}
Lp trnh trn s kin Page_Load ca trang
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
109/272
Default.aspx
protected void Page_Load(object sender, EventArgs e){ //To ra ng kt ni n file tt.txt
CauHinh kn = new CauHinh(Server.MapPath("ttt.txt"));
LopHoc sv = new LopHoc();
//Hin th cc sinh vin trn ListResponse.Write("Danh sach cac sinh vien tren List ");for (int i = 0; i < sv.LstSinhvien.Count; i++)
{
Response.Write(sv.LstSinhvien[i].Masv +"
");Response.Write(sv.LstSinhvien[i].Hoten + "
");
Response.Write(sv.LstSinhvien[i].Dtb.ToString() + "
");
}
//Hin thi cc sinh vin trn DataTable
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
110/272
//Hin thi cc sinh vin trn DataTableResponse.Write("Danh sach cac sinh vien tren DataTable ");for (int i = 0; i < sv.DtSinhVien.Rows.Count; i++){
Response.Write(sv.DtSinhVien.Rows[i]["Masv"].ToString() +
"
");Response.Write(sv.DtSinhVien.Rows[i]["hoten"].ToString() +
"
");Response.Write(sv.DtSinhVien.Rows[i]["DTB"].ToString() + "
");
}}
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
111/272
Trn lp: LopHoc vit cc phng thc : Hin th cc sinh vin ln lp
Hin th cc sinh vin li
Tnh TBC ca TB ca cc sinh vin To file olai.txt lu cc sinh vin li
Xa cc sinh vin li ra khi file ds.txt
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
112/272
Chng 4
WINFORM
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
113/272
Nguyn Hong H - Khoa CNTT-HKH 113
Ni dung
Cc lp th vin
Cc thuc tnh v phng thc
X l s kin
Cc thnh phn giao din c bn
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
114/272
Nguyn Hong H - Khoa CNTT-HKH 114
Application
User Interface
Program
Cc lp th vin
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
115/272
Nguyn Hong H - Khoa CNTT-HKH 115
Cc lp th vin
.Net Framework da trn cch tip cn hng
i tng
Cc lp th vin c chia vo cc namspace
V dSystem.Windows.forms
Cc thuc tnh v phng thc
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
116/272
Nguyn Hong H - Khoa CNTT-HKH 116
Cc thuc tnh v phng thc
Frog
Height :12 cmWeight :100gmName : Jumpie
Jump
HeightWeightName
Th hin ca lp
S ki ki [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
117/272
Nguyn Hong H - Khoa CNTT-HKH 117
S kin v p ng s kin[1]
Ta c th tng tc gia cc i tng khc nhaubn trong 1ngdng,gia 1 itng v itngbn ngoi thng qua skin v pngskin.
S kin v p ng s kin[2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
118/272
Nguyn Hong H - Khoa CNTT-HKH 118
hin th tt cc cc s kin ca iu khin kchvo button Event trn Properties window.
V d x l s kin
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
119/272
Nguyn Hong H - Khoa CNTT-HKH 119
private void button1_Click(object sender, System.EventArgs e){
}
Ngi dng
chn nt
S kin
p ng s kin
MessageBox.Show("Goodluck to you!");
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
120/272
Nguyn Hong H - Khoa CNTT-HKH 120
ng dng Windows
Thnh phn c bn l Form
Hin th thng tin ca ngi dng
Nhn thng tin t ngi dng
Mt ng dng c th c nhiu Form
WinForms
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
121/272
Nguyn Hong H - Khoa CNTT-HKH 121
WinForms
Form c trnh by nh 1 lp trong
WinForms. Btk khi no ngdnguc to th 1 form
sc thm vo
WinForms sto ra 1 thhincalp Form
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
122/272
Nguyn Hong H - Khoa CNTT-HKH 122
Cc iu khin (Controls)
Trn Form c th c nhiu iu khin hin th v
nhp d liu ca ngi dng. C th thit k cc iu khin Toolbox
Cc thuc tnh chung cho cc Controls
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
123/272
Nguyn Hong H - Khoa CNTT-HKH 123
Visible
TextName
ForeColor
EnabledCanFocus
BackColor
Thuc tnh
Controls
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
124/272
Nguyn Hong H - Khoa CNTT-HKH 124
Controls
Label
TextBox
Button
ListBox
ComboBox
CheckedListBox
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
125/272
Nguyn Hong H - Khoa CNTT-HKH 125
PROPERTIES
Image
TabStop
Paint
Events
Methods
Label
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
126/272
Nguyn Hong H - Khoa CNTT-HKH 126
PROPERTIES
Events
Methods
AcceptReturn
MaxLengthMultiline
Passwordchar
ReadOnly
ScrollBars
ClearCopyCut
MultilineChanged
TextChanged
TextBox
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
127/272
Nguyn Hong H - Khoa CNTT-HKH 127
PROPERTIES
Events
Methods
DialogResult
TextAlign
Button
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
128/272
Nguyn Hong H - Khoa CNTT-HKH 128
PROPERTIES
Items
MultiColumn
SelectedIndex
SelectedItem
SelectedItems
SelectedValue
Sorted
Text
ListBox [1]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
129/272
Nguyn Hong H - Khoa CNTT-HKH 129
EventsMethods
ClearSelected
FindString
GetSelected
SetSelected
SelectedIndexChanged
SelectedValueChanged
ListBox [2]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
130/272
Nguyn Hong H - Khoa CNTT-HKH 130
PROPERTIES
Events
Methods
CheckedIndices
CheckedItemsThreeDCheckBoxes
GetItemChecked
GetItemCheckState
SetItemChecked
SetItemCheckStateItemCheck
CheckedListBox
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
131/272
Nguyn Hong H - Khoa CNTT-HKH 131
PROPERTIES
Events
Methods
DropDownStyleFocused
MaxDropDownItems
Select
SelectAll
DropDown
ComboBox
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
132/272
Nguyn Hong H - Khoa CNTT-HKH 132
T kho this
idin cho Form hinthi truy xutn ttc cc thuc tnh, phngthc,trng v skinca Form hinthi.
V d
this.[controlname].[propertyname]
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
133/272
Nguyn Hong H - Khoa CNTT-HKH 133
To WinForm Applications
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
134/272
Nguyn Hong H - Khoa CNTT-HKH 134
pp
File -> New -> Project
Thm 1 Item vo project
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
135/272
Nguyn Hong H - Khoa CNTT-HKH 135
p j
Project -> Add New Item
Label: Properties: Image
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
136/272
Nguyn Hong H - Khoa CNTT-HKH 136
Npnh vo Label:Properties: Image= Image.FromFile(fileName);
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
137/272
Nguyn Hong H - Khoa CNTT-HKH 137
Properties: Image= Image.FromFile(fileName);Event: Click, DoubleClick: Thay i nh
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
138/272
Nguyn Hong H - Khoa CNTT-HKH 138
Gi s trong Bin c 7 nhc tn 1 jpg 2 jpg
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
139/272
Nguyn Hong H - Khoa CNTT-HKH 139
c tn 1.jpg, 2.jpg,
int i =1 ;
private void label1_Click(object sender, EventArgs e)
{label1.Image = Image.FromFile(i.ToString()+".jpg");
i++;
if (i == 7) i = 1;
}
checkedListBox: Properties: Items,...Method: GetItemChecked, ...
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
140/272
Nguyn Hong H - Khoa CNTT-HKH 140
checkedListBox1 list1
comboBox1
Khi nhn enter trn textBox1
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
141/272
Nguyn Hong H - Khoa CNTT-HKH 141
private void textBox1_KeyPress(object sender,
KeyPressEventArgs e)
{ if(e.KeyChar==13)
checkedListBox1.Items.Add(textBox1.Text);
}
Khi chn trn 1 mc trn checkedListBox1
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
142/272
Nguyn Hong H - Khoa CNTT-HKH 142
private void checkedListBox1_ItemCheck(object
sender, ItemCheckEventArgs e)
{listBox1.Items.Add(checkedListBox1.Items[e.Index]);
}
Khi chn chn trn butsend
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
143/272
Nguyn Hong H - Khoa CNTT-HKH 143
private void butSend_Click(object sender, EventArgs e)
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
if (checkedListBox1.GetItemChecked(i) )
comboBox1.Items.Add(checkedListBox1.Items[i]);
comboBox1.Text = comboBox1.Items[0].ToString() ;
}
imageList, listView
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
144/272
Nguyn Hong H - Khoa CNTT-HKH 144
imageList: Properties: Images,...
listView
Properties: Columns
Items (Items.Add(...), Items[i].SubItems[i]
SmallItemList
View, GridLine,
DialogResult MessageBox (text, caption,MessageBoxButtons)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
145/272
Nguyn Hong H - Khoa CNTT-HKH 145
Hm kim tra xem c H tn trng nhau hay khng?
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
146/272
Nguyn Hong H - Khoa CNTT-HKH 146
bool Kiemtra(string ht){
for (int i = 0; i < listView1.Items.Count; i++)
if (listView1.Items[i].Text.Equals(ht))return false;
return true;
}
Kch vo nt Nhpprivate void butNhap_Click(object sender, EventArgs e)
{
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
147/272
Nguyn Hong H - Khoa CNTT-HKH 147
{
DialogResult kq=DialogResult.Yes;
bool kt = Kiemtra(textHoten.Text);if(!kt)kq = MessageBox.Show(" c nv ny, nhp thm hay
khng ?","Thng bo",MessageBoxButtons.YesNo) ;
if(kq==DialogResult.Yes ||kt==true){
string[] st = new string[3];
st[0] = textHoten.Text;
st[1] = textDiachi.Text;
st[2] = textGioiTinh.Text;ListViewItem lv = new ListViewItem(st);
listView1.Items.Add(lv);
}
}
timer, progressBar
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
148/272
Nguyn Hong H - Khoa CNTT-HKH 148
timerProperties:
Enable Interval
Methods:
Tick
progressBar Properties:
Maximum
Minimum Value
statusStrip
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
149/272
Nguyn Hong H - Khoa CNTT-HKH 149
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
150/272
Nguyn Hong H - Khoa CNTT-HKH 150
DongHo TienTrinh DieuKhien
statusStrip
Lp trnh trn timer1_Tick()
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
151/272
Nguyn Hong H - Khoa CNTT-HKH 151
private void timer1_Tick(object sender, EventArgs e)
{ DateTime dh=DateTime.Now;
DongHo.Text = dh.ToLongTimeString() ;TienTrinh.Maximum = 60;
TienTrinh.Minimum = 0;
TienTrinh.Value = dh.Second;
}
colorDialog
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
152/272
Nguyn Hong H - Khoa CNTT-HKH 152
Properties: Color; method: ShowDialog
private void button1_Click(object sender, EventArgs e){
colorDialog1.ShowDialog();textBox1.ForeColor = colorDialog1.Color;
}
colorDialog
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
153/272
Nguyn Hong H - Khoa CNTT-HKH 153
Properties: Color; method: ShowDialog
private void button1_Click(object sender, EventArgs e){
colorDialog1.ShowDialog();textBox1.ForeColor = colorDialog1.Color;
}
fontDialog,saveFileDialog, openFileDialog
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
154/272
Nguyn Hong H - Khoa CNTT-HKH 154
Method: ShowDialog();
Properties:
Font FileName
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
155/272
Nguyn Hong H - Khoa CNTT-HKH 155
OpenFile
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
156/272
Nguyn Hong H - Khoa CNTT-HKH 156
private void butOpen_Click(object sender, EventArgs e){
try{
openFileDialog1.ShowDialog();StreamReader f=new
StreamReader(openFileDialog1.FileName);
textBox1.Text = f.ReadToEnd();
}catch(Exception e1){MessageBox.Show(e1.Message); }
}
SaveFile
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
157/272
Nguyn Hong H - Khoa CNTT-HKH 157
private void butSave_Click(object sender, EventArgs e){
try {
saveFileDialog1.ShowDialog();
StreamWriter f = new
StreamWriter(saveFileDialog1.FileName);
f.WriteLine(textBox1.Text);
f.Close();
}catch (Exception e1) { MessageBox.Show(e1.Message); }
}
Font
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
158/272
Nguyn Hong H - Khoa CNTT-HKH 158
private void butFont_Click(object sender, EventArgs e){
fontDialog1.ShowDialog();
textBox1.Font = fontDialog1.Font;
}
menuStrip
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
159/272
Nguyn Hong H - Khoa CNTT-HKH 159
M Form1:Form1 f = new Form1();f.Show();
toolStrip
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
160/272
Nguyn Hong H - Khoa CNTT-HKH 160
Data Binding
L s kt hp gia cc iu khin thit k giao din nh
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
161/272
Nguyn Hong H - Khoa CNTT-HKH 161
Cc iu khin giao din Cc ngun d liu
V d V d
ComboBox
DataBinding
L s kt hp gia cc iu khin thit k giao din nhTextBox, ListBox, vi cc ngun d liu nh DataSet,DataTable, Table, BindingSource,
Misthay i trn cc iukhin giao dinsnhhngnngundliu v ngcli
Data Binding
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
162/272
Nguyn Hong H - Khoa CNTT-HKH 162
To lp TaoBang Lp ny cha bng lm ngun d liupublic class TaoBang
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
163/272
public class TaoBang
{ //to bng PhanLoaipublic static DataTable dt = new DataTable("PhanLoai");
public TaoBang()
{ dt.Columns.Add("Maloai" ); //To ct MaLoai
dt.Columns.Add("TenLoai"); //To ct TenLoaifor(int i=1;i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
164/272
Nguyn Hong H - Khoa CNTT-HKH 164
C 2 loi Binding:
- DataBinding n gin (Simple DataBinding): Timtthiim,mt gi trn trong ngundliu
c thbbuc vo btkmtiukhin.
Bucdliu vo TextBox: txt1
txt1.DataBindings.Add("Text", ngun,tntrng");
Khi mi thay i trn DataTable dt s nh
hngn TextBox txt1 v ngcli.
V d buc d liu vo TextBox
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
165/272
private void Form1_Load(object sender, EventArgs e)
{
new TaoBang();
txtmaloai.DataBindings.Add("Text", TaoBang.dt, "maloai");txttenloai.DataBindings.Add("Text", TaoBang.dt, TenLoai");
}
Cc loi Binding (2)DataBindingphc tp (Complex DataBinding): Cc d liu trong
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
166/272
Nguyn Hong H - Khoa CNTT-HKH 166
ngund liubbuc vo mtiukhin thay v chmt gi tr
n. Chc DataGidView, ComboBox v listBox htrchcnng
DataBinding phctp.
- Dng cc thuc tnh: DataSource,DataMember hoc
DisplayMemberbuc vo cc iukhinV d: Gis c DataTable dt chadliubng PhanLoai:
listBox1.DataSource = dt; listBox1.DisplayMember = "TenLoai";
dataGridView1.DataSource = ds; dataGridView1.DataMember = "PhanLoai comboBox1.DataSource = ds; comboBox1.DisplayMember = "PhanLoai.TenLoai"; ";
Cc loi Binding (3)-Bucdliu vo dataGridView: dataGridView1
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
167/272
Nguyn Hong H - Khoa CNTT-HKH 167
- dataGridView1.DataSource = Ngundliu;
dataGridView1.DataMember = tn bng trong ngun
V d Buc d liu vo dataGridView: dataGridView1
private void Form1_Load(object sender, EventArgs e)
{
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
168/272
{
new TaoBang();txtmaloai.DataBindings.Add("Text", TaoBang.dt, "maloai");
txttenloai.DataBindings.Add("Text", TaoBang.dt, TenLoai");
dataGridView1.DataSource = TaoBang.dt;
}
TaoBang.dt
(PhanLoai)
Cc loi Binding (4)+ BucdliuvoListbox, Combox: Listbox1, Combox1
li tB 1 h C b 1 D t S d li
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
169/272
Nguyn Hong H - Khoa CNTT-HKH 169
listBox1 hoc Combox1 .DataSource = ngun d liu;
listBox1 hoc Combox1 .DisplayMember = Tn trng hin th"; listBox1 hoc Combox1 . ValueMember = Tn trng cha gi tr";+ Ly gi tr ca ValueMember:
listBox1 hoc Combox1 .SelectedValue+ Ly gi tr ca DisplayMember :
listBox1 hoc Combox1.Text
Buc d liu vo Listbox, Combox: Listbox1, Combox1
private void Form1_Load(object sender, EventArgs e)
{ new TaoBang();
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
170/272
{ new TaoBang();
txtmaloai.DataBindings.Add("Text", TaoBang.dt, "maloai");txttenloai.DataBindings.Add("Text", TaoBang.dt, TenLoai");
dataGridView1.DataSource = TaoBang.dt;
listBox1.DataSource = TaoBang.dt;
listBox1.DisplayMember = "tenLoai";
listBox1.ValueMember = "maloai";
comboBox1.DataSource = TaoBang.dt;comboBox1.DisplayMember = "tenLoai";
comboBox1.ValueMember = "maloai";
}
S dng BindingSource L con tr n ngun d liu
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
171/272
S dng BindingSource buc d liu thay vdng ngun d liu
Dng BindingSource c th thm, xa, sa dliu trn ngun d liu.
.DataSource=ngun d liu
Nhp, xa, lu ngun d liu
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
172/272
.AddNew() .RemoveCurrent()
. EndEdit()
V d BindingSource
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
173/272
private void Form1_Load(object sender, EventArgs e){
new TaoBang();
bindingSource1.DataSource = TaoBang.dt;
txtmaloai.DataBindings.Add("Text", bindingSource1, "maloai");
txttenloai.DataBindings.Add("Text", bindingSource1, TenLoai");
dataGridView1.DataSource = bindingSource1;
}
private void butNhap_Click_1(object sender, EventArgs e)
{
bindingSource1 AddNew();
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
174/272
bindingSource1.AddNew();
}
private void butXoa_Click(object sender, EventArgs e)
{
bindingSource1.RemoveCurrent();}
private void butLuu_Click(object sender, EventArgs e)
{
bindingSource1.EndEdit();
}
BindingContext Cch tng tc gia 1 ngundliuvittc cc iukhin
b buc trn form
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
175/272
Nguyn Hong H - Khoa CNTT-HKH175
bbuc trn form
Mi Form u c mt thuc tnh BindingContext. MtBindingContext c mt tphp cc BindingManagerBase, cc
itng ny cto ra khi dliubuc vo mtiukhin.
Mt CurrencyManager c th duy tr mt v tr hin thi bn
trong ngundliu v khi v tr ny thay i th dliu trn cc
iukhinbbuc trn form stng thay i theo .
Mt CurrencyManagerchc to ra mt ln cho mtngun
dliu. Nu hai TextBox bbuc vo 1 dng ca DataTable khi
ch c mt CurrencyManager c to ra trong
BindingContext
BindingContext
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
176/272
Nguyn Hong H - Khoa CNTT-HKH176
Gets hoc sets i tng hin thi trong danhsch cc i tng c qun l trongCurrencyManager
Position
Gi trca cc itnghinthi trong ngundliu
Current
S dng cqun l trong CurrencyManagerCount
Tp hp cc i tng Binding c qun lbi CurrencyManager
BindingsM tThuc tnh
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
177/272
Gii thiu
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
178/272
LINQ (Language Integrated Query) l smrngca .Net Frame Work. N bao gmngn ng tch hp truy vn, l sm rng
C# v Visual Basic vi c php ngn ngring cho cc truy vn v cung cp cc thvin truy xutdliu.
V sao phi dng LINQ?
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
179/272
Data IS Everywhere
ButData != Objects
Objects Data
V sao phi dng LINQ ?
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
180/272
!=
Kin trc ca LINQ
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
181/272
LINQ to Objects: Cung cp cc khnng truy vnIEnumerable , da trn mng, collections v list
LINQ to XML: gip cho ngi lp trnh thao tc trn
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
182/272
LINQ to XML: gip cho ngilp trnh thao tc trn
cc truy vn XPath / XQuery mt cch nhanh chngvhiuqu. LINQ to SQL: c s dng truy cp cc i
tngcsdliu quan hnh cc itng .NET.
LINQ to SQL tch hp SQL da trn cc nhnghacalc. Cung cp cch nh mnhm,kim trac php, IntelliSense trn cc itng SQL.
LINQ to DataSet: Cung cp cc khnng truy vn
ADO.NET Dataset. Linq to Entities: cung cpkhnng truy vn trn cc
thcth ADO.NET.
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
183/272
Gii thiu
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
184/272
LINQ to SQL l mt phin bn hin thc ha caO/RM (object relational mapping) c bn trong .NETFramework 3.5, cho php m hnh ha mtcsdliu dng cc lp .NET. Sau bn cth truy vn
c s d liu (CSDL) dng LINQ, cng nh cpnht/thm/xa dliut.
LINQ to SQL htry transaction, view v ccstored procedure (SP). N cng cung cp mt cchd dng thm khnngkim tra tnh hplcadliu v cc quy tc vo trong m hnh dliu
To CSDL trong SQL SERVER 2005
CSDL ny c s dng v d trong bi
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
185/272
CSDL ny c s dng v d trong bi
ging
Kt ni n CSDL- View -> Server Explorer
Kch phi chut ln DataConnection > Add Connection
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
186/272
- Kchphichut ln DataConnection -> Add Connection
Hiu chnh ng kt ni trong fileWeb.config
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
187/272
To ra m hnh d liu LINQ TO SQL
To ra lp DataContext
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
188/272
Project -> Add New Item -> LINQ To SQLClasses -> ti Name g tn: QlNvDb.dbml
M ca s Server Explorer -> chn Table ->Gi phm Ctrl ngthichnttc cc bng ->ko cc bng ny vo ca s ca fileQlNvDb.dbml
To ra m hnh d liu LINQ TO SQL
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
189/272
Cc thnh phn ca lp DataContext
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
190/272
Cc thnh phn ca lp DataContext
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
191/272
Cc thnh phn ca lp DataContext
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
192/272
Cc thnh phn ca lp DataContext
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
193/272
Cc truy vn
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
194/272
Biu thc truy vn
Bin a phngkiu tham chiu
Biu thcLambda
Cc phngthc m rng Kiu nc danh Khi to cc i
tng
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
195/272
Cc ton t trong LINQ TO SQL
Select
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
196/272
Select manv, hoten from nhanvien
Take, Skip
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
197/272
select top 2 manv, hoten from nhanvien
db.NhanViens.Skip(4).Take(2);
Ly v gi tr ca dng 5 v 6
Order by
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
198/272
select manv, hoten, hesoluong fromnhanvien order by hesoluong desc
Distinct
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
199/272
select distinct madonvi from nhanvien
var q = (from p in db.NhanViens
select new { madv=p.MaDonVi }).Distinct() ;
Where
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
200/272
select manv, hoten, hesoluong from nhanvienwhere madonvi='dv1'
Where
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
201/272
select manv, hoten, hesoluong from nhanvienwhere hoten like N%Nguyn%'
Join
select manv hoten tendonvi from donvi
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
202/272
select manv, hoten, tendonvi from donvi
inner join nhanvien on donvi.madonvi=nhanvien.madonvi
Group
l t T D Vi (h l *830000) f d i i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
203/272
select TenDonVi,sum(hesoluong*830000) from donvi inner
join nhanvien on donvi.madonvi=nhanvien.madonvi
group by TenDonVi
var q = from dv in db.DonVisjoin nv in db.NhanViens on dv.MaDonVi equals nv.MaDonVi
group nv by nv.DonVi.TenDonVi into kqselect new{Madv=kq.Key ,
Tongluong=kq.Sum(t=>t.HeSoLuong*830000)};
Cc hm tp hp
l t (h l *830000) f h i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
204/272
select sum(hesoluong*830000) from nhanvien
Select avg(hesoluong) from nhanvien
Select count(*) from nhanvien
Select Max(hesoluong) from nhanvien
Select Min(hesoluong) from nhanvien
var l = db.NhanViens.Sum(nv => nv.HeSoLuong * 830000);
var tb = db.NhanViens.Average(nv => nv.HeSoLuong );
var snv = db.NhanViens.Count();var max = db.NhanViens.Max(nv => nv.HeSoLuong);
var min = db.NhanViens.Min(nv => nv.HeSoLuong);
Thm
Insert into nhanvien values('nv123',N'Nguyn Hong
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
205/272
H','11/22/1976',1,3,'dv1')
Xa
D l t f h i h 1
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
206/272
Delete from nhanvien where manv=nv1
Sa
d t h i t h l h l +1 h
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
207/272
update nhanvien set hesoluong=hesoluong+1 where
madonvi='dv1'
S dng th tc v View
TimN l
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
208/272
TimNv l
Chng 6
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
209/272
LP TRNH NG DNG WEBVI ASP.NET
Ni dung
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
210/272
Kin trc ca ng dng Web
Cng ngh pht trin ng dng Web
(ng) Kin trc
HTML
Web ng
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
211/272
Ni dung c Web Server sinh ra khi c yucu t Client.
Ni dung hin th ti cc ln duyt khc nhau l
khc nhau. Rt ph dng: Hu ht cc trang web thng
mi u l web ng.
S dng ngn ng lp trnh sinh ra trangHTML.
S dng CSDL.
Web ng
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
212/272
Web ng
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
213/272
CSDL
WebServer
WebBrowser
DatabaseProvider
http://www....
Yu cu d liu
Thao tc CSDLD liu
D liu
Ni dung (HTML)
Cng ngh pht trin Web(ng)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
214/272
a dng v khng ngng c phttrin.
Microsoft:ASP, ASP.NET
Sun: Java Servelet, JSP.
Khc: PHP
ASP.NET - Kin trc
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
215/272
ASPX
.ASPX
ASP.NET - Kin trc
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
216/272
Client
(Browser)
ASP.DLL
IISVBScript
JavaScript
ActiveX Data
Objects
(ADO)
Database ASP file
ASP.NETc im
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
217/272
Hngitng: Mi trang bao gm hai itngktha nhau. Tch m giao din (HTML) vi m x l bng
kthutCodebehind.
=> D vit chng trnh, tm li. => Giu c m (m c dch thnh DLL).
.aspx .aspx.cs
ASP.NETc im (2)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
218/272
Cc iu khin pha Server (server-sidecontrols).
=> C th x l tt c trn server.
ASP.NETc im (3)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
219/272
Cc iu khin pha Server (server-sidecontrols).
Auto PostBack cho tng iu khin => Bts kin trn iu khin n gin.
ASP.NETc im (3)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
220/272
Cc iu khin pha Server (server-side controls).Kim tra hp thc (validation)
Cn m Ty bin (CustomValidator) Khng cn m
Yu cu nhp (RequiredFieldValidator) Trong khong (RangeValidator) So snh (CompareValidator) Biu thc chung (RegularExpressionValidator)
HTML
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
221/272
Khi nim
HTML (HyperText Markup Language) l ngn ngnhdngvnbn siu lin kt. Snhdngda
trn cc tab hoc cc on m cbitnhdumtvnbn,mt file nh ... gip cho Web Browerthng dch v hinth chng ln mn hnh. HTML cnhng phn m rng rt quan trng cho php
nhng lin kt hypertext tmt ti liu ny nmtti liu khc.
Cu trc c bn ca mt file HTML
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
222/272
HTML
Gii thiu 1 s th HTML
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
223/272
, , , ,
Tn lin kt
V d: Cc th HTML
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
224/272
Cc iu khin pha Server
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
225/272
Label
PROPERTIES
ID: tn ca LabelText: Tiu
TextBox
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
226/272
Nguyn Hong H - Khoa CNTT-HKH 226
PROPERTIES Events
ID
AutoPostBack
TextTextMode TextChanged
Button
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
227/272
Nguyn Hong H - Khoa CNTT-HKH 227
PROPERTIES Events
ID
Text
LinkButton
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
228/272
Nguyn Hong H - Khoa CNTT-HKH 228
PROPERTIES Events
ID
PostBackUrl
Th thao
Text
DropDownList (ListBox)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
229/272
Nguyn Hong H - Khoa CNTT-HKH 229
PROPERTIES Events
ID
AutoPostBack
SelectedIndexChanged
Text
Np d liu DropDownList (ListBox)
.DataSource = list hoc DataTable;
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
230/272
Nguyn Hong H - Khoa CNTT-HKH 230
.DataValueField = Tn trng"; .DataTextField = Tn trng"; .DataBind();
CauHinh ch=new CauHinh(Server.MapPath(ds.txt"));LopHoc lh= new LopHoc();
DropDownList1.DataSource = lh.DtSinhVien;
DropDownList1.DataValueField = "masv";DropDownList1.DataTextField = "hoten";
DropDownList1.DataBind();
Image
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
231/272
Nguyn Hong H - Khoa CNTT-HKH 231
PROPERTIES
ID
ImageUrl
FileUpload
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
232/272
Nguyn Hong H - Khoa CNTT-HKH 232
PROPERTIES Methoad
ID
SaveAs
GridView
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
233/272
.DataSource =List, DataTable
.DataBind()
CauHinh ch = new
CauHinh(Server.MapPath(ds.txt"));LopHoc lh = new LopHoc();
GridView1.DataSource = lh.DtSinhVien;GridView1.DataBind();
DataList
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
234/272
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
235/272
.DataSource =list, DataTable;
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
236/272
.DataBind();
CauHinh ch = newCauHinh(Server.MapPath(ds.txt"));
LopHoc lh = new LopHoc();
DataList1.DataSource = lh.DtSinhVien;
DataList1.DataBind();
V d
To trang HtSinhVien.aspx vi giao din:
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
237/272
T ToolBox:
-To 2 Label
-1 DropDownList: vi tn DropDownList1,
thuc tnh AutoPostBack=true
-1 GridView vi tn GridView 1
Lp trnh trn s kin Page_Load ca trang np cc tn lp vo DropDownListprotected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{ CauHinh ch = new CauHinh(Server.MapPath(ds.txt"));
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
238/272
LopHoc lh = new LopHoc();
List lssv = lh.LstSinhvien;
List tam = new List();
for (int i = 0; i < lssv.Count; i++)
{ string tenlop = lssv[i].Tenlop;
int j;
for (j = 0; j < i; j++)
if (tenlop.Equals(lssv[j].Tenlop )) break;
if (j == i) tam.Add(lssv[i]);
}
DropDownList1.DataSource = tam;
DropDownList1.DataTextField = "tenlop";
DropDownList1.DataBind();
}
}
SelectedIndexChanged ca DropDownList tm sinh vin theo tn lp
protected void DropDownList1_SelectedIndexChanged(object sender,EventArgs e)
{
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
239/272
CauHinh ch = new CauHinh(Server.MapPath("ttt.txt"));
LopHoc lh = new LopHoc();
List lssv = lh.LstSinhvien;
List tam = new List();
string tenlop = DropDownList1.Text ;
for (int i = 0; i < lssv.Count; i++)
{
if (tenlop.Equals(lssv[i].Tenlop))
tam.Add(lssv[i]);
}GridView1.DataSource = tam;
GridView1.DataBind();
}
}
To trang thongke.aspx
T ToolBox to 1ListBox hin th
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
240/272
ttc cc tn lp- Khi chn 1 tn lp
trn ListBox s hinth cc sinh vin calp ny ra Gridview
- Khi chn nt Danhsch ln lpshinth danh sch ccsinh vin ln lp(tb>=5) ca lp
chn ListBoxx raGridView v hin ths sinh vin ln lp
- Tng t cho ntDanh sch sinhvin
LM VIC VI STYLESHEET
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
241/272
CSS thc cht l mt tp cc qui tc format/ nh kiu (style) cho cc phn tc hin th v nh v trn trang web.
Nh vo CSS m vic nh dng (kiu)cho cc phn t tr nn d dng v linhhothnrtnhiu.
LM VIC VI STYLESHEET
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
242/272
Cc nh ngha v CSS c th c tngay trong tp ngun nhng cng c thc t ring ra mt tp khc. Tp ny
thng c ui m rng l css.
LM VIC VI STYLESHEET
To 1 file CSS
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
243/272
Web site -> AddNew Item ->
STYLESHEET -
> G tn file
Ni dung ca tp ch cha cc nh ngha CSS (Gm nhngha b chn th, chn ID, v lp).
LM VIC VI STYLESHEET
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
244/272
Kch chut phi trang -> Add Style Rule
Element: nh dng li cc th c ( V d a: hover)
Class name: To 1 lp mi (v d: .Mau)
Element Id: To 1 ID cc phn t c cng ID s nhdng ging nhau( v d: #TieuDe)
LM VIC VI STYLESHEET
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
245/272
Kch chut phi ln v tr cn nh dng -> AddStyle -> Chn mc cn nh dng nh hnh trn
LM VIC VI STYLESHEET
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
246/272
Np file Css vo trang: M trang ch Source
v dng th:
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
247/272
php ta thitkiukhinda trn cc k thut m talp trnh trn trang ASP.NET.
Khi s dng UserControl, ta phi nhng chng votrang ASP.NET thay v thc thi mt mnh ging nh
trang ASP.NET, phn m rng ca UserControl lASCX.
Sau khi thit k xong UserControl ta chn chng t cas Solution Explored v ko th vo trang ASP.NET
qun l ta to mt th mc lu ccWebUserControl:
Web Site | New Folder| g tn th mc l UC
S DNG WEB USER CONTROL
1
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
248/272
+ To ra 1 WebUserControl: Kch chut phi ln tnth mc UC | Add New Item | Web User Control |g tn WebUserControl | Add:
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
249/272
CC I TNG ASP.NET
GII THIU
Active Server Pages (ASP): lkchbnchy pha Server, 1 W bS th l d l i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
250/272
cung cp 1 WebServer cthx l cc ngdng logic vtrv HTML cho browser.
Web Forms: Cung cp cc cng cthitkvsonthoForm
Design:hin th b cc ca trang Source:Hin th m t ng pht sinh khi to trang Web. Web.config: lfile XML cha cu hnh trong project. Global.asax lfile t chn c s dng thao tc trn
cc s kin mc ng dng. *.aspx, *.aspx.cs: Desgn, Codebehind
Th mc o
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
251/272
Request and Response Resquest:
C S S
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
252/272
Nhn yu cu t Client gi n Server khi nt Submitc nhn.
Khi nhn nt Submit th d liu ca cc iukhin bntrong Form scgin Server (Post).
nhn c d liu gi t Form (client):
Request.Form[tn iu khin]; nhn c tham s gi bng Get (Dng th ) Request.QueryString[tn tham s]);
Response:
Gi d liu t Client n Server Phng thc:
Write(d liu); Redirect(URL);
Request and Response
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
253/272
Nhap.htm
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
254/272
M Loi:
Tn Loi
NhapHtml.aspxprotected void Page_Load(object sender, EventArgs e)
{
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
255/272
{
string ma = Request.Form["txtma"];
string ten = Request.Form["txtten"];
Response.Write("M Loai:" + ma);
Response.Write("
Tn Loi" + ten);
}
i tng ServerServer.property | methodC php
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
256/272
HTMLEncode
MapPath
MachineName
Methods
cn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;datasource=" + Server.MapPath("qlthuvien.mdb"));
Response.Write(alo);
Response.Write(Server.HtmlEncode(alo));
i tng Session
Lu tr cc thng tin ca ngi dngt 1 hi l i
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
257/272
trong 1 phin lm vic. Binlutr trong Session khng b xo i
khi ngi dng chuyn t trang ny sang
trang khc. WebServer s t ng to ra khi ngi
dng yu cu 1 trang web, b gii phng
khi kt thc phin lm vic Session[tnbin ]= object
To lp Global khi to cc Session
Project -> Add New Item -> Global Application
Class
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
258/272
Class
Khi to cc Session
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
259/272
V d 1
Tomt Website sinh vin mn sch trong
th i bao cc WebPage:
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
260/272
thvin bao gm cc WebPage: Qlthuvien.aspx: Cha giao din chnh Dangky.Aspx:ngnhp. Hienthi. Aspx: Hinthttc cc sch Mn. Asp: mn sch.
Yu cu: ngi s dng phi ng nhp mic xem hocmn sch.
Ta phi to ra 1 phin lm vic (Session) kim tra xem ngi dng ngnhpcha?
Qlthuvien.aspx
t t d id Li kB tt 3D Cli k( bj t d E tA )
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
261/272
protected void LinkButton3Dn_Click(object sender, EventArgs e)
{
Response.Redirect("Dangky.aspx");
}protected void LinkButton1HT_Click(object sender, EventArgs e)
{
Response.Redirect("Hienthi.aspx");
}..
DangKy.aspx
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
262/272
protected void ButDangNhap_Click(object sender, EventArgs e){
Session["ID"] = TextID.Text;
....
}
HienThi.aspx
protected void Page Load(object sender EventArgs e)
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
263/272
protected void Page_Load(object sender, EventArgs e){
if (Session["Id"] == null || Session["Id"] == "")
Response.Redirect("~/Dangky.aspx");
//
}
Bi thc hnh (Session)To ra trang Web n gin mua hng trn mng:
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
264/272
GridView1
To lp GioHang.cs nhp thm1 hng vo gi
public class Giohang
{ public DataTable dt = new DataTable("Hang");
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
265/272
{ public DataTable dt = new DataTable( Hang );public Giohang()
{ dt.Columns.Add("TenHang");
dt.Columns.Add("Soluong");
}public void ThemGiohang(string th,string sl)
{ DataRow dr = dt.NewRow();
dr[0] = th;
dr[1] = sl;dt.Rows.Add(dr);
dt.AcceptChanges();
}
Lp trnh trn nt mua v gi hngprotected void butMua_Click(object sender, EventArgs e)
{
if (Session["gh"] == null)
gh = new Giohang();
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
266/272
gh = new Giohang();
else
gh = (Giohang) Session["gh"];
gh.ThemGiohang(DropDownList1.Text, textSoluong.Text);
Session["gh"] = gh;}
protected void ButGioHang_Click(object sender, EventArgs e)
{ Giohang gh = (Giohang)Session["gh"];
if (gh != null) {GridView1.DataSource = gh.dt;
GridView1.DataBind();
}
}
Yu cu b sung To CSDL qlhang.mdb bao gmbng hang(mahang,tenhang,gia),
khachhang(hoten,diachi,tenhang,soluong,thanhtien).
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
267/272
DropDownList1 Hin thttc cc tn hng cabng hng
Trong gi hng thm trngThanhTien=Slng * gi.
Kimtr xem trong gi hng nu c tn hng thtngslng, tnh li thnh tin.
To thm nt Thanh Ton: ngi dng nhph tn va
ch v chuyn tt c hng trong gi hng vo bng
Khachhang
Bin Application
Dng qun l cc bin c phm vi ton ngdng C tc dng n mi ngi dng
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
268/272
dng. C tc dngnmingi dng.
Bin ton ngdng l bin c tc dngivimingi dng truy cp vo website. Mi trang
aspx u c th truy cpnbin ny v d btkthiim no.
Application[tn bin"] =
Khi to gi trbin trong Application_Start calp Global
LinqDatasource
T Data trn ToolBox chn 1 LinqDataSource
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
269/272
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
270/272
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
271/272
Buc d liu vo GridView
7/27/2019 SLIDEBAIGIANGC# VA linq ASP - WinForm-bi tp
272/272