L Ӟ,1*Ӑ Tồn tүSJLiRWUình này là kӁWTXҥFөDVӳF{ÿӏQJQKӱQJNLӁQWKӫFFҩQWKLӁWJL~S bңQOàm chөQӃQWҥQJ17FKRF{QJYLӉF&K~QJW{Lÿã ÿ~FNӁWQKӱQJNLQKQJKLӉP thӳF WӁ U~W JӏQ QKӱQJ ÿLӃP FҩQ OѬX ý, nhӱQJ Nӹ W
Trang 1MICROSOFT NET (C#) PROFESSIONAL PROGRAMMING FOR REAL LIFE
T UXQJWkPÿjRWңR&177FKҧWOѬӥQJFDR
C Ӗ1*&1779,ӈ7 NAM WWW.ITGATEVN.COM.VN
Trang 2L Ӟ,1*Ӑ
Tồn tүSJLiRWUình này là kӁWTXҥFөDVӳF{ÿӏQJQKӱQJNLӁQWKӫFFҩQWKLӁWJL~S
bңQOàm chөQӃQWҥQJ1(7FKRF{QJYLӉF&K~QJW{Lÿã ÿ~FNӁWQKӱQJNLQKQJKLӉP
thӳF WӁ U~W JӏQ QKӱQJ ÿLӃP FҩQ OѬX ý, nhӱQJ Nӹ WKXүW Pà hҩX KӁW FiF F{QJ W\
phҩQ PӃP SKiW WULӅQ ӫQJ GӧQJ WUên nӃQ WҥQJ 1(7 ÿӃX \êu cҩX WKӳF KLӉQ +ѪQ QӱDÿk\ Fịn là tài liӉX Pà bңQ Fy WKӅ Vӯ GӧQJ ÿӅ {Q WүS OңL QKӱQJ NLӁQ WKӫF VDX
nhӱQJJLӟOên lӝSYjÿҹFELӉWWURQJF{QJYLӉFFөDFiFEңQ
XuҧWWKkQWӭPӛWQKà phát triӅQFKX\ên gia phân tích hӉWKӓQJW{Lÿã gĩi nhӱQJ
kiӁQWKӫFFӓWOõi và cҩQWKLӁWQKҧWWURQJOүSWUình trên cơng nghӉ1(7Yào tài
liӉXQày NhӱQJYtGӧ WURQJ Wài liӉXOà nhӱQJYt GӧWKӳFWӁÿѬӥF W{LWUtFKOӏF
tӁWURQJF{QJYLӉFÿӅPӏLQJѬӟLFùng tham khҥRSKҥLQJұQJӏQ và thүWVӳWKӳFWӁ QKѬQJOңLSKҥLFKX\ên sâu và thӅKLӉQQKӱQJNӹWKXүWFDRWURQJOүSWUình7{Lÿã nghƭYӃ QKӱQJ\êu cҩX ÿy và quyӁWÿӍQK YiӁWWài liӉXQày vào mәLEXӗLWӓLVDX
giӟOàm viӉFĈk\QKѬPӛW PyQTXjÿiSOңLVӳ tín nhiӉP\êu mӁQPà các bңQÿã, ÿDQJYjVҿGành cho tơi
Tơi rҧW PRQJ QKүQ ÿѬӥF QKLӃX ê NLӁQ ÿyQJ JyS FөD FiF EңQ FKR Wài liӉX Qày, và tơi sҿWӗQJKӥSOңLÿӅFүSQKүWFKR tài liӉXPӛWWӓWKѪQ
Tơi mong rҳQJWài liӉXQày sҿÿӕQJKành cùng các bңQWURQJF{QJYLӉF
Tác giҥ
Ph ңP7XҧQ$QK
Trang 3MӏL Vӳ VDR FKpS VDR OѬX [XҧW EҥQ FKX\ӅQ JLDR NK{QJ ÿѬӥF Vӳ FKR SKpS FөD {QJ
PhңP7XҧQ$QKOà không hӥSSKiS
Tác giҥ
Ph ңP7XҧQ$QK
Trang 4M Ӧ&/Ӧ&
L Ү375ÌNH NET (C#) 8
CҧXWU~FOүSWUình C# căQEҥQ - 9
ӪQJGӧQJ³&+HOOR:RUOG´ 9
TiӁSFүQ& - 10
Khai báo bi ӁQWURQJ& 11
Ki ӅXGӱOLӉXWURQJ& 11
,QSXW2XWSXWWURQJ&FăQEҥQ 11
C ҧXWU~FÿLӃXNKLӅQWURQJOүSWUình C# 12
C ҧXWU~FLI 12
C ҧXWU~FVZLWFK«FDVH 12
C ҧXWU~FYòng lҹSWURQJOүSWUình C# 13
Vòng lҹSWhile 13
Vòng lҹSdo 14
Vòng lҹSfor 14
Vòng lҹSforeach 15
Arrays - M ҥQJWURQJ& 15
&K~QJWDÿã hӏF 15
Bài t үSWӳWKӳFKLӉQ 16
HiӉQWKӳFNKiLQLӉPKѬӝQJÿӓLWѬӥQJ223 WURQJ& - 17
L ӝSFODVV WURQJ& 18
Class 18
ĈӓLWѬӥQJ2EMHFWV 18
ѫXÿLӅPFөDYLӉFVӯGӧQJ&ODVVYjĈӓLWѬӥQJ 18
Hàm t ңR&RQVWUXFWRUV Yà hàm hө\'HVWUXFWRUV WURQJ& 18
Constructors 18
Destructors 19
Fuction Overloading 19
Th ӭDNӁWURQJ& 20
Overriding, Polymorphism trong C# 21
Overriding 21
Polymorphism 23
Abstract Class trong C# 24
Namespaces 24
Khái ni ӉP1DPHVSDFH 24
Khai báo m ӛW1DPHVSDFH 24
Enumerator trong C# 25
BÀI T Ү3&Ï+ѫӜ1*'Ҭ1 26
&ѩ6Ӡ'Ӱ/,ӈ8 27
Thao tác v ӝLKӉTXҥQWUӍGӱOLӉX0664/6HUYHU 28
Kh ӡLWңRPӛWKӉFѪVӡGӱOLӉX 28
T ңREҥQJ 28
Truy v ҧQGӱOLӉXWӭPӛWEҥQJ 28
Truy v ҧQGӱOLӉXFyÿLӃXNLӉQ 29
Truy v ҧQGӱOLӉXWӭQKLӃXEҥQJ 29
Thêm d ӱOLӉXYào bҥQJ 31
C үSQKүWGӱOLӉXWURQJEҥQJ 31
Xóa d ӱOLӉXWӭEҥQJ 31
L Ү375ÌNH DÀNH CHO CÔNG VIӈ& 33
ADO.NET và thao tác vӝLFѪVӡGӱOLӉX - 34
Gi ӝLWKLӉXYӃ$'21(7 35
Mô hình ADO.NET 35
Data Provider 36
K ӁWQӓL 36
Data Adapter 36
Thu ӛFWtQKYjSKѬѪQJWKӫFFөD'DWD$GDSWHU 37
Data Command 37
Data Reader 37
Trang 5DataSet 38
BÀI T Ү3&Ï+ѫӜ1*'Ҭ1 39
BÀI T Ү37Ӳ5ÈN LUYӈ1 39
Data Binding 40
Khái ni ӉP'DWD%LQGLQJ 40
Th ӳFKLӉQ'DWD%LQGLQJWK{QJTXDFkXOӉQKWUX\YҧQ 40
L ӏFYà sұS[ӁSGӱOLӉX 40
L ӏFPӛW'DWDVHW 40
S ӯGӧQJFkXOӉQK64/FyWKDPVӓ 40
Thêm, c үSQKүW[yDGӱOLӉXWURQJFѪVӡGӱOLӉX 41
Thêm m ӝLGӱOLӉXYjRFѪVӡGӱOLӉX 41
C үSQKүW[yDGӱOLӉXWURQJFѪVӡGӱOLӉX 42
Xây d ӳQJPӛWOӝS&6'/Gùng chung 43
Xây d ӳQJOӝSJLDRWLӁSYӝL&6'/- DBClass 43
S ӯGӧQJOӝSJLDRWLӁSYӝL&6'/- DBClass 46
Xây dӳQJӪQJGӧQJ:LQGRZV)RUP - 47
Xây d ӳQJ:LQGRZV)RUPV 47
Visual Studio NET Integrated Development Environment (IDE) 47
T ңRPӛWGӳiQWURQJ9LVXDO6WXGLR1HW 47
Window Form Controls 51
Windows Form 51
Thu ӛFWtQK:LQGRZV)RUP 52
S ӳNLӉQWURQJ:LQGRZV)RUP 52
TextBox Control 53
Label Control 53
LinkLabel Control 54
ListBox Control 54
ComboBox Control 56
CheckBox Control 56
RadioButton Control 57
GroupBox Control 57
Button Control 57
T ңRFRQWUROÿӛQJWURQJ:LQGRZV)RUP 57
S ӯGӧQJQKӱQJOӝSWKӭDNӁ&RPPRQ'LDORJ 57
L ӝS&RORU'LDORJ 57
L ӝS)RQW'LDORJ 59
Làm vi ӉFYӝL0HQXVYà xây dӳQJӫQJGӧQJ0', 60
Xây d ӳQJӫQJGӧQJ0', 62
Bài t үSFyKѬӝQJGҭQ 63
Bài t үSWӳOX\ӉQ 63
Qu ҥQOêOәLWURQJOүStrình C# 64
Xây dӳQJKӉWKӓQJӫQJGӧQJWUên nӃQWҥQJ:HE- ASP.NET - 66
Xây d ӳQJӫQJGӧQJ+HOOR$631(7VӯGӧQJ9LVXDO6WXGLR1(7 IDE 66
S ӳNLӉQ3DJHB/RDG 71
&iFÿӓLWѬӥQJ$631(7 72
ĈӓLWѬӥQg Request 72
ĈӓLWѬӥQJ5HVSRQVH 73
ĈӓLWѬӥQJ6HVVLRQ 73
Xây d ӳQJ ӫQJGӧQJ:HEVӯGӧQJ6HUYHU&RQWUROV 74
Server Controls 74
HTML Server Controls 74
HtmlAnchor 75
HtmlInputText 75
HtmlInputCheckBox 76
HtmlInputRadioButton 76
HtmlSelect Control 76
Web Server Controls 76
TextBox Control 77
Literal Control 77
FileUpload Control 77
Panel Control 78
Trang 6View & MultiView Control 78
Calendar Control 78
DropDownList Control 78
ĈLӃXNKLӅQFiF6HUYHU&RQWUROV 79
K ӁWQӓLFѪVӡGӱOLӉXWURQJ$631(7 82
DataBinding trong ASP.NET 82
Binding d ӱOLӉXYào mӛW'URS'RZQ/LVW&RQWURO 82
Thu ӛFWtnh IsPostBack 83
Web Server Control Template 83
Repeater Control 84
G ұQÿLӃXNKLӅQYào Repeater 91
UserControl và ӫQJGӧQJWURQJ[k\GӳQJ:HE3RUWDO 94
T ңRYà sӯGӧQJ8VHU&RQWURO 94
ӪQJGӧQJ8VHU&RQWUROWURQJ[k\GӳQJӫQJGӧQJ:HE3RUWDO 96
Hi ӉQWKӳFNLӁQWU~F:HE3RUWDO 97
Ki ӁQWU~FWҥL8VHU&RQWUROÿӛQJVӯGӧQJ3ODFH+ROGHU 98
Bài t үSWӳ{QOX\ӉQ 99
C ҧXKình cho ӫQJGӧQJ:HE$631(7 99
M ӧFDSS6HWWLQJV! 100
ĈӏFJLiWUӍWӭWKҽDSS6HWWLQJV 100
Th ҽFustomErrors> 100
Xu ҧWEҥQPӛWӫQJGӧQJ:HE$631(7 101
Tri ӅQNKDLPӛWӫQJGӧQJ:HEVLWH$631(7WUên IIS 102
Phát triӅQKӉWKӓQJӫQJGӧQJGRDQKQJKLӉSYӝL1(7 - 108
Web Services .108
Kh ӡLWңRYà gӏLPӛW:HE6HUYLFHV 108
D ӲÈ1 115
Project 1. - 115
D ӳiQ:HEVLWe thông tin và bán hàng trӳFWX\ӁQ 115
Project 2. - 115
D ӳiQ+ӉWKӓQJTXҥQWUӍNKRKàng 115
Ĉӎ&7+ÊM 116
ASP.NET & AJAX Framework - 116
HӉFѪVӡGӱOLӉX0\64/6HUYHU OүSWUình thao tác dӱliӉXYӝL0\64/ Server. - 116
K ӁWQӓLÿӁQFѪVӡGӱOLӉX0\64/ 116
Regular Expressions Error! Bookmark not defined G ӡL(PDLOWӭPӛWWUDQJ$631(7 120
Upload file hình ҥQKYjRFѪVӡGӱOLӉX64/ 121
THAM KH Ҥ2 123
Trang 7L Ү375ÌNH NET (C#)
.NET là nӃQ WҥQJ FKR SKpS SKiW WULӅQ QKӱQJ ӫQJ GӧQJ PӝL KRàn toàn trên cҥ KDLP{L WUѬӟQJ :LQ Yà Web Khi sӯ GӧQJ 1(7 ÿòi hӑL SKҥL Vӯ GӧQJ PӛW QJ{Q QJӱ ÿӅkhai thác hӁWVӫFPңQKFөDQy&Oà ngôn ngӱFKúng tôi lӳDFKӏQÿӅVӯGӧQJYà
giӝLWKLӉXÿӁQEңQ&ÿѬӥFSKiWWULӅQWӭ&&Yà giӱQJX\rQWrQWURQJJLDÿình
C, ký tӳÿѬӥFVӯGӧQJQKѬPӛWVӳNKҵQJÿӍQKYӃWtQKVұFEpQFөDQJ{QQJӱQày,
GRÿy&ÿѬӥFSKiWkPOà C sharp
Trang 86DXÿk\OjFKѬѪQJWUình C# Hello World, mã nguӕQQKѬVDX
/*This is Hellow World C# Program*/
Trang 10Khai báo bi ӁQWURQJ&
Access Modifier Mô t ҥ
public Truy cүSWңLEҧWNǤQѪLÿkX
protected Cho phép truy xuҧW Eên trong mӛW OӝS QѪL ELӁQ Qj\ ÿѬӥF ÿӍQK
object obj = null;
string ĈѬӥF Vӯ GӧQJ ÿӅ OѬX WUӱ QKӱQJ JLi
byte sӯGӧQJÿӅOѬXWUӱJLiE\WH byte val = 12;
float SӯGӧQJÿӅOѬXWUӱJLiWUӍVӓWKӳF float val = 1.23F;
bool Cho phép mӛW ELӁQ OѬX WUӱ JLi WUӍ
ÿ~QJKRҹFVDL
bool val1 = false;
bool val2 = true;
char Cho phép mӛW ELӁQ OѬX WUӱ PӛW Nê
tӳ
char cval = 'a';
,QSXW2XWSXWWURQJ&FăQEҥQ
,QSXWRXWSXWWURQJ&ÿѬӥFWKӳFKLӉQWK{QJTXDYLӉFVӯGӧQJKàm cөDOӝSConsole trong namespace System
+DLKjPWKѬӟQJVӯGӧQJQKҧWFKRWKDRWiF,QSXW2XWSXWOà:
Console.WriteLine();
Console.ReadLine();
Trong dó,
Trang 12C ҧXWU~FYòng lҹSWURQg lүSWUình C#
C# cung cҧSFiFFҧXWU~FYòng lҹSFKѬѪQJWUình
ThӳF WKL FkX OӉQK hoҹF PӛW ORңW QKӱQJ FkX OӉQK ÿӁQ NKL ÿLӃX NLӉQ NK{QJ ÿѬӥF
Trang 14MҥQJ Oà mӛW QKyP QKӱQJ ELӁQ Fy Fùng mӛW NLӅX Gӱ OLӉX 1KӱQJ ELӁQ Qj\ ÿѬӥF OѬX
trӱWURQJEӛQKӱQJYùng bӛQKӝNӁWLӁSGRÿy mҥQJ cho phép truy xuҧWYà thӳFWKLÿӁQWӭQJSKҩQWӯWURQJPҥQJ
Công thӫFkhai báo mӛWPҥQJQKѬVDX
Datatype [] variableName = new Datatype [number of elements];
string[] sarray2 = { "Welcome", "to", "C# Array" };
Khi lүSWUình, tùy theo ÿLӃXkiӉQFKѬѪQJWUình mà bңQFyWKӅFKӏQOӳDPӛWWURQJhai cách trên
&K~QJWDÿã hӏF
TӝLÿk\, bңQÿã tìm hiӅXYà làm quen vӝLOүS WUình trên nӃQWҥQJ 1(7 YӝL QJ{Q
ngӱ&1KӱQJNLӁQWKӫFVDXEңQFҩQQұPYӱQJ
Trang 15 C# là mӛWQJ{QQJӱPңQKÿѬӥFELên dӍFKYà thӳFWKLGӳDWUên nӃQWҥQJ1(7
ĈӅFөQJFӓNiӁQWKӫFÿã hӏF1KӱQJEài tүSVDXÿk\ÿѬӥF\êu cҩXWKӳFKLӉQ
1 ViӁWFKѬѪQJWUình cho phép nhүWYào 1 sӓQJX\rQGѬѪQJ1YjKLӅQWKӍJLiWUӍ
Trang 18 Function Overloading dӳDWUên sӓOѬӥQJWKDPVӓWUX\ӃQYào
Function Overloading dӳDWUên kiӅXJLiWUӍWKDPVӓWUX\ӃQYào
Trang 19Ba hàm insertbooks ӡ WUên là mӛW Yt Gӧ YӃ IXQFWLRQ RYHUORDGLQJ WURQJ OүS WUình C# Trong khi hàm thӫQKҧWYà thӫOà overloading theo sӓOѬӥQJWKDPVӓYà hàm
thӫYӝLKàm thӫOà overloading theo kiӅXWKDPVӓWUX\ӃQYào
Th ӭDNӁWURQJ&
MӛWWURQJQKӱQJѬXÿLӅPQӗLEүWFөDOүSWUình hѬӝQJÿӓLWѬӥQJÿyOà thӭDNӁÿy
là sӳ VӯGӧQJOңLQKӱQJ WKXӛFWtQK Yà hành vi cөDPӛWOӝS Có hai kiӅXNӁ WKӭDtrong lүSWUình, ÿѪQNӁWKӭDYjÿDNӁWKӭD
protected int ifoots;
protected string sName;
protected void setFoot(int ival)
Trang 20&KLFNHQ 'R ÿy WD Fy WKӅ JӏL QKӱQJ Kàm này, và kӁW TXҥ KLӅQ WKӍ NKL JӏL Kàm
displayProperties() WKHR ÿӓL WѬӥQJ REM'RJ Yj REM&KLFNHQ NKiF QKDX QKѬ Kình trên
Overriding, Polymorphism trong C#
protected int ifoots;
protected string sName;
protected void setFoot(int ival)
Trang 23 Polymorphism không chӋ ÿѪQ JLҥQ Oà overriding, mà nó là overrding thông minh
Khác biӉW JLӱ 2YHUULGLQJ Yj 3RO\PRUSKLVP ÿy Oj WURQJ 3RO\Porphism, sӳquyӁWÿӍQKJӏLKjPÿѬӥFWKӳFKLӉQNKLFKѬѪQJWUình chң\
Abstract Class trong C#
Abstract Class là lӝS GQJ ÿӅ ÿӍQK QJKƭD QKӱQJ WKXӛF WtQK Yà hành vi chung cөD
nhӱQJ OӝS NKiF 0ӛW $EVWUDFW FODVV ÿѬӥF GQJ QKѬ PӛW OӝS FKD FөD FiF OӝS NKiF
Tӭ khóa abstract ÿѬӥFGQJÿӅÿӍQKQJKƭDPӛWDEVWUDFWFODVV NhӱQJOӝSÿѬӥFÿӍQKnghƭDEҳQJFiFKGùng tӭNKyDabstract thì không cho phép khӡLWңRÿӓLWѬӥQJFөD
lӝSҧ\
abstract class Shape
{
public abstract float calculateArea();
public void displaySomething()
ĈѬӟQJPDQJWên vӍWѬӝQJ GDQKWLӁQJ 7UҩQ+ѬQJÿңRÿӃX FyWңL 6ài Gòn và Hà NӛL
vү\ OjP VDR ÿӅ SKkQ ELӉW NKL QJѬӟL QѬӝF QJRài muӓQ KӑL YӃ ÿѬӟQJ 7UҩQ +ѬQJ ĈңR
&iFKÿѪQJLҥQQKҧWÿyOà khi muӓQJӏLWrQÿѬӟQJ7UҩQ+ѬQJĈңRWңL+à NӛLWKì ta
gӏL³ÿѬӟQJ7UҩQ+ѬQJĈңRWңL+à NӛL´YjWѬѪQJWӳWңL6ài Gòn là “ÿѬӟQJ7UҩQ+ѬQJĈңRWңL6ài Gòn” và chұFFKұQFK~QJWDVҿFyFkXWUҥOӟLFKRYӍNKiFKÿy
Hà NӛL6ài Gòn trong ví dӧWUên là mӛWYtGӧFKR1DPHVSDFH
Vү\FyWKӅKLӅX1DPHVSDFHOà mӛWJyLQKӱQJWKӳFWKӅFyWKXӛFWtQKYjKjQKYLÿӛF
lүSYӝLEên ngoài NhӱQJѬXÿLӅPFөDQDPHVSDFHÿѬӥFOLӉWNrQKѬVDX
7UiQKÿѬӥFVӳWUùng lҹSWên giӱDFiFFODVV
Cho phép tӗFKӫFmã nguӕQPӛWFiFKFyNKRDKӏFYà hӥSOê
Khai báo m ӛW1DPHVSDFH
namespace NamespaceName
{
Trang 25}
BÀI T Ү3&Ï+ѫӜ1*'Ҭ1
Namespace System.IO
IO Namespace chӫD QKӱQJ OӝS FKR SKpS WKDR WiF ÿӏF Yà ghi dӱ liӉX ÿӁQ QKӱQJ
luӕQJGӱOLӉXYà file MӛWVӓOӝSFөD6\VWHP,2ÿѬӥFOLӉWNrQKѬVDX
Trang 26&ѩ6Ӡ'Ӱ/,ӈ8
M ӧFWLêu khóa hӏFQày
Sau phҩQnày, bңQFyWKӅ
HiӅXYӃFiFKӉFѪVӡGӱOLӉX
Thao tác dӱ OLӉX YӝL &6'/ 0664/ 6HUYHU EҳQJ FiF FkX OӉQK LQVHUW XSGDWHdelete, selectFѪEҥQ
Truy vҧQGӱOLӉXWӭQKLӃXEҥQJFùng lúc
Trang 27C ѪVӡGӱOLӉX
&ѪVӡGӱOLӉX là tүSKӥSQKӱQg dòng dӱOLӉXÿѬӥFVұS[ӁSWKHRPӛWFҧXWU~FQKҧWÿӍQK
Ví dӧ tңRFѪVӡGӱOLӉXÿӅKӏFWүS1(7 có tên _NETDB
CREATE DATABASE _NETDB
Trang 28Câu lӉQK truy vҧQ Gӱ OLӉX 6(/(&7 WUҥ YӃ Gӱ OLӉX Fy WURQJ EҥQJ &ҧu trúc câu
lӉQKÿѪQJLҥQÿӅtruy vҧQGӱOLӉXWӭPӛWEҥQJQKѬVDX
SELECT * | [CӛW@>&ӛW@«)520>7DEOH1DPH@
Ví dӧ
SELECT * FROM MyTable
SELECT vname FROM MyTable
SELECT * FROM MyTable where vName = ‘PhңP7XҧQ$QK¶
Select * from MyTable where igender = 1
Trang 29&K~QJWDFyÿѬӥF 5 dòng kӁWTXҥYӝLdòng thӫFyJLiWUӍOj18//QKѬWKӁӡFkX
lӉQKWUên, viӉFVRViQKFKӋGӳDWUên các giá trӍFөDFӛWicid trên bҥQJcategory
hay nói cách khác câu truy vҧQWUên lҧ\WҧWFҥFiFGòng cөDEҥQJFDWHJRU\EҥQJbên trái) 1JѬӟLWDÿӍQKQJKƭDÿyOj/()7-2,1
1JѬӥFYӝL/()7-2,1ÿyOà RIGHT JOIN Chúng ta cùng xét ví dӧ
Trang 30icid vname iid vvalue
insert into category values('A')
insert into items values(1,'V1')
Trong hai câu lӉQKWUên, chúng ta có thӅWKҧ\NK{QJFyGӱOLӉXWKêm cho cӛWmã FKtQKÿLӃX Qày xҥ\UDNKLFӛWPã chính là cӛWWӳWăQJNKL ҧ\KӉWKӓQJWӳJiQgiá trӍӫQJYӝLGòng ÿѬӥFWKêm
update items set vvalue='V5' where iid=5
/ѬX ý, khi sӯ GӧQJ FkX OӉQK 83'$7( Qên sӯ GӧQJ ÿLӃX NLӉQ SKtD VDX ÿӅ ÿҥP EҥR
DELETE items where iid=5
/ѬX ý, khi sӯ GӧQJ FkX OӉQK DELETE, nên sӯ GӧQJ ÿLӃX NLӉQ SKtD VDX ÿӅ ÿҥP EҥR
rҳQJFKӋFyQKӱQJGòng thӑDÿLӃXNLӉQPӝLÿѬӥFxóa
Trang 32L Ү375ÌNH DÀNH CHO CÔNG VIӈ&
M ӧFWLêu khóa hӏF này
Sau phҩQQày, bңQFyWKӅ
Thao tác trên công cӧSKiWWULӅQ9LVXDO6WXGLR1(7,'(
Trang 33ADO.NET và thao tác v ӝLFѪVӡGӱOLӉX
Sau khi hoàn thành, bңQFyWKӅ
NҷPYӱQJNLӁQWU~F$'2.NET
HiӅXUõ nhӱQJÿӓLWѬӥQJWKXӛF$'21(7
KӁWQӓLFѪVӡGӱOLӉXVӯGӧQJFiFKàm thuӛFWKѬYLӉQ2OH'E
ThӳFKLӉQWKêm, cүSQKүW[yDGӱOLӉX
Trang 34Gi ӝLWKLӉXYӃ$'21(7
Ngày nay, nhӱQJ ӫQJ GӧQJ WKѬѪQJ PңL FҩQ WKLӁW ÿӅ TXҥQ lý khӓL OѬӥQJ Gӱ OLӉX
khӗQJ Oӕ 'ӱ OLӉX WKѬӟQJ ÿѬӥF OѬX WUӱ WURQJ QKӱQJ EҥQJ TXDQ KӉ WURQJ FѪ Vӡ Gӱ
liӉX 1KүQ Gӱ OLӉX Yà thao tác dӱ OLӉX WUӳF WLӁS Wӭ PӛW FѪ Vӡ Gӱ OLӉX ÿòi hӑL
kiӁQWKӫFYӃQKӱQJFkXOӉQKWKDRWiFWUrQFѪVӡGӱOLӉXÿӅWUX\FүSÿӁQGӱOLӉX
Và ӫQJGӧQJFҩQJLDRWLӁSYӝL&ѪVӡGӱOLӉXÿӅWKӳFKLӉQQKӱQJF{QJYLӉFVDX
NhүQGӱOLӉXÿѬӥFOѬXWUӱWURQJFѪVӡGӱOLӉXYà hiӅQWKӍFK~QJUDJLDRGLӉQQJѬӟLGùng
CүSQKүWGӱOLӉXWKӳFKLӉQWKêm, hiӉXFKӋQKYà xóa dӱOLӉX
ADO.NET là mӛWP{KìnKÿѬӥF QKӱQJӫQJGӧQJ1(7Vӯ GӧQJÿӅJLDRWLӁS YӝLFѪ Vӡ
dӱOLӉXFKRYLӉFQKүQWUX\FүSYà cүSQKүWGӱOLӉX
Mô hình ADO.NET
Trang 35 Sql Server data provider - loңL Qày làm viӉF FKӋ YӝL 0LFURVRIW 64/ 6HUYHUCho phép thao tác vӝLWӓFÿӛWӓLѬXYӝLKӉFѪVӡ GӱOLӉX0664/6HUYHU ÿѬӥF
ConnectionString Cung cҧSWK{QJWLQQKѬGDWDVRXUFHWrQFѪVӡGӱOLӉXÿѬӥFVӯ
dӧQJÿӅWKLӁWOүSNӁWQӓLYӝLPӛWFѪVӡGӱOLӉX Open() Mӡ Pӛt kӁW QyL YӝL GDWDVRXUFH ÿѬӥF NKDL EiR WңL
ConnectionString Close() ĈѬӥFVӯGӧQJÿӅÿyQJNӁWQӓLYӝLGDWDVRXUFH
State ĈѬӥFVӯGӧQJÿӅ NLӅPWUD WUңQJWKiL FөDPӛWNӁWQӓLNӁW
Trang 36Thu ӛFWtQKYjSKѬѪQJWKӫFFөD'DWD$GDSWHU
Data Adapter giao tiӁS YӝL FѪ Vӡ Gӱ OLӉX WURQJ NKL QKүQ WKêm mӝL [yD Yà cүS
nhүWGӱOLӉX1KӱQJWKXӛFWtQKVDXÿk\ÿѬӥFWKLӁWOүSÿӅWKӳFKLӉQQKӱQJWiFYӧkhác nhau trên mӛWKӉFѪVӡGӱOLӉX
SelectCommand - nhүQ Gӱ OLӉX Wӭ &6'/ WK{QJ TXD PӛW FkX WUX\ YҧQ KRҹF VWRUHGprocedures
InsertCommand - thêm dӱOLӉXYào CSDL qua câu lӉQKLQVHUW
Data Command
'DWD&RPPDQGOjÿӓLWѬӥQJ WKӳFWKL QKӱQJFkXOӉQK64/KRҹFVWRUHG SURFHGXUHÿѬӥF
sӯ GӧQJ ÿӅ WKDR WiF YӝL &6'/ 'DWD &RPPDQG Oj ÿӓL WѬӥQJ cөD OӝS 6TO&RPPDQG Yà OleDbCommand
Trang 38conObj.Open();
OleDbCommand cmd = new OleDbCommand("select * from books");
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
+ѬӝQJGҭQ
1 TңRPӛWGDWDDGDSWHU
2 TңRPӛW'DWDVHW
3 NhүQ[HPGӱOLӉXWӭFѪVӡGӱOLӉX
Trang 39Data Binding
Khái ni ӉP'DWD%LQGLQJ
Sau khi nhүQ Gӱ OLӉX Wӭ FѪ Vӡ Gӱ OLӉX Gӱ OLӉX FҩQ ÿѬӥF KLӅQ WKӍ WUên nhӱQJcontrol cөD :LQGRZV )RUP ÿӅ QJѬӟL Vӯ GӧQJ WKҧ\ 4Xi WUình ÿy JӏL Oà Data Binding
Th ӳFKLӉQ'DWD%LQGLQJ thông qua câu lӉQKWUX\YҧQ
Trang 40Ví dӧ VDXVҿ Oҧ\YӃ GDQKViFKQKӱQJTX\ӅQ ViFKFyQKà xuҧWEҥQOà công ty phát hành sách nhà xuҧWEҥQWUҽ (mã sӓLQ[E
string connectionstring = "PROVIDER=SQLOLEDB;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "books");
MessageBox.Show(ds.Tables["books"].Rows.Count.ToString()); conObj.Close();
BңQOѬXý vӝLGòng lӉQK
cmd.Parameters.Add( "@ibookid" , 2);
Ĉây là cách sӯ GӧQJ QJұQ JӏQ NKL WUX\ӃQ WKDP Vӓ Pà nhӱQJ FKX\ên gia phát triӅQ
phҩQPӃPWKӳFWӁWKѬӟQJVӯGӧQJQJXyên mҭXFkXOӉQKFyF{QJWKӫFQKѬVDX
OleDbParameter param = new
OleDbParameter ("@paramname", OleDbType VarChar);
... Ү375ÌNH DÀNH CHO CÔNG VIӈ& 33ADO.NET thao tác vӝLFѪVӡGӱOLӉX - 34
Gi ӝLWKLӉXYӃ$''21(7 35
Mơ hình ADO.NET 35
Data Provider 36
K...
T ңRPӛWGӳiQWURQJ9LVXDO6WXGLR1HW 47
Window Form Controls 51
Windows Form 51
Thu ӛFWtQK:LQGRZV)RUP 52
S ӳNLӉQWURQJ:LQGRZV)RUP... class="text_page_counter">Trang 7
L Ү375ÌNH NET (C#)
.NET nӃQ WҥQJ FKR SKpS SKiW WULӅQ QKӱQJ ӫQJ GӧQJ PӝL KRàn toàn cҥ KDLP{L WUѬӟQJ