Toàn tập giáo trình Microsoft .NET (C#)

Lập trình .NET (C#)

Cấu trúc lập trình C# căn bản

Tiếp cận C#

Hiện thực khái niệm hướng đối tượng trong C#

Cơ sở dữ liệu

Lập trình dành cho công việc

pdf122 trang | Chuyên mục: Visual C# | Chia sẻ: dkS00TYs | Lượt xem: 4509 | Lượt tải: 1download
Tóm tắt nội dung Toàn tập giáo trình Microsoft .NET (C#), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
HQW 
Regular Expressions 
Regular Expression là mӛWFKXәLQKӱQJNêWӳGQJÿӅELӅXGLӇQWKD\WKӁFKRPӛW
chuәL QjR ÿy 5HJXODU ([SUHVVLRQ Oj PӛW Nӹ WKXүW NKy Vӯ GӧQJ SKѬѪQJ SKiS VR
sánh. BҥQJVDXWKӅKLӉQQKӱQJELӅXWKӫFWKѬӟQJVӯGӧQJQKҧW 
Mô tҥNLӅP
tra 
Công thӫF 
Mô tҥ 
Ví dӧ 
MӛW WүS
hӥSNêWӳ 
[ ] 
ĈѬӥF Vӯ GӧQJ ÿӅ VR
sánh bҧWNǤPӛWNêWӳ
nҳPWURQJ>@&yWKӅ
ÿѬӥF Vӯ GӧQJ ÿӅ [iF
ÿӍQK PӛW FKXәL Nê Wӳ
bұW ÿҩX Yà kӁW WK~F
bҳQJviӉFVӯGӧQJGҧX
gңFKQJDQJQKѬ>D-z] 
“P[0-5]” 
KiӅPWUDPã sҥQSKҫPEұWÿҩXYӝL
ký tӳ3Yà theo sau bӡLQKӱQJVӓ
trong khoҥQJÿӁQ 
 \w 
ĈѬӥF Vӯ GӧQJ ÿӅ VR
sánh tӭ Vӓ Nê Wӳ
gңFKGѬӝL 
“\w{8,20}” 
kiӅPWUDPүWNKҫXYӝLÿӛGài nhӑ
nhҧWOà 8 ký tӳYà lӝQQKҧWOà 20 
ký tӳ 
PROFESSIONAL PROGRAMMING FOR REAL LIFE 
PhɞP7XɢQ$QK - C͕QJ&1779LʄW1DP 118 
Mô tҥNLӅP
tra 
Công thӫF 
Mô tҥ 
Ví dӧ 
KhoҥQJ 
{n} 
ĈѬӥF Vӯ GӧQJ ÿӅ VR
sánh mӛW ELӅX WKӫF
lүSOңLQOҩQ 
“P[0-9] {4}” 
kiӅPWUDPӛWPã sҥQSKҫPEұWÿҩX
bҳQJNêWӳ3Yà theo sau bӡLVӓ
nҳPWURQJNKRҥQJÿӁQ 
Ký tӳ EҧW
ký 
. 
ĈѬӥF Vӯ GӧQJ ÿӅ NLӅP
tra mӛWNêWӳEҧWNǤ
ngoңLWUӭNêWӳ[XӓQJ
dòng. 
“2.12.2008” 
kiӅP WUD ÿӍQK GңQJ Gӱ OLӉX Fy
dңQJ-12-2008, 2 12 
2008 và cҥ 
MӛW Nê Wӳ
không phҥL
ký tӳ
khoҥQJ
trұQJ 
\S 
ĈѬӥFGQJÿӅNLӅPWUD
mӛW Nê Wӳ EҧW NǤ
ngoңL WUӭ NKRҥQJ
trұQJWDEVYà ký tӳ
xuӓng dòng. 
“http://\S\S\S\S\S\S.\S\S\S.\S\S” 
kiӅPWUDÿӍDFKӋZHEFyÿѬӥFQKүS
ÿ~QJQKѬKWWSLWJDWHYQFRPYQ 
MӛW KRҹF
nhiӃX Nê
tӳ 
+ 
Sӯ GӧQJ ÿӅ NLӅP WUD
có ít nhҧW PӛW Vӳ
xuҧW KLӉQ WURQJ ELӅX
thӫFWUѬӝFQy 
“\S+@\S+\. S+” 
KiӅP WUD PӛW ÿӍD FKӋ PDLO QKѬ
pta30000@gmail.com 
BҧWNêPӛW
ký tӳÿѪQ 
? 
ĈѬӥF Vӯ GӧQJ ÿӅ NLӅP
tra bҧWNǤPӛWNêWӳ
ÿѪQQjRWUѬӝFQy 
“programs? “ 
[iF ÿӍQK Nê Wӳ V WURQJ FKӱ
programs có thӅFyKRҹFNK{QJFy 
MӛW Nê Wӳ
trұQJ EҧW
kǤ 
\s 
ÿѬӥF Vӯ GӧQJ ÿӅ NLӅP
tra mӛWNêWӳEҧWNǤ
bao gӕP NKRҥQJ
trұQJWDEVYà ký tӳ
xuӓQJGòng. 
“\smore” 
kiӅP WUD NKRҥQJ WUұQJ WUѬӝF PӛW
tӭ 
MӛWVӓEҧW
kǤ 
\d 
ĈѬӥF Vӯ GӧQJ ÿӅ NLӅP
tra mӛW Vӓ WURQJ
khoҥQJÿӁQ 
“\d{5} 
KiӅPWUDPӛWVӓFyQăPFKӱVӓQKѬ
11101 
Ký tӳ
Escape 
\ 
ĈѬӥF Vӯ GӧQJ ÿӅ NLӅP
tra mӛW Nê Wӳ WKHR
sau dҧX JңFK FKpR
QJѬӥF 
“\~” 
kiӅPWUDQJѬӟLGQJÿã nhүSNêWӳ
aYjRFKѬD 
Không có 
hoҹF Fy
nhiӃXFKӱ 
* 
ĈѬӥF Vӯ GӧQJ ÿӅ NLӅP
tra không có hoҹF Fy
nhiӃX Nê Wӳ WURQJ
biӅXWKӫF 
“P*\d{3}” 
kiӅ WUD ÿҩX Yào cөD PӛW Pã sҥQ
phҫP EұW ÿҩX EҳQJ ký tӳ 3 QKѬ
P333,P777 
Regular Expression giúp kiӅPWUDGӱOLӉXGRQJѬӟLGùng nhүSYào tӭӫQJGӧQJÿӅ
tránh nhӱQJOәL[XҧWSKiWWӭYLӉFQKүSGӱOLӉXFөDFKѬѪQJWUình. 
PROFESSIONAL PROGRAMMING FOR REAL LIFE 
PhɞP7XɢQ$QK - C͕QJ&1779LʄW1DP 119 
MӛWVӓӫQJGӧQJFөD5HJXODU([SUHVVLRQV 
Hàm ki͌m tra tính hͬp l͐ cͰa email. 
public static bool IsValidEmail(string email) 
{ 
 return System.Text.RegularExpressions.Regex.IsMatch(email, 
@"^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$"); 
} 
Hàm ki͌PWUD[HPÿ˳ͦng d̴Qÿ͔a ch͒ web có hͬp l͐ hay không 
public static bool IsValidURL(string url) 
{ 
 return System.Text.RegularExpressions.Regex.IsMatch(url, 
@"^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-
Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$"); 
} 
HjPVDXGQJÿ͌ ki͌m tra m͢t chu͠i có d̪ng là s͚ interger hay không. 
public static bool IsValidInt(string val) 
{ 
 return System.Text.RegularExpressions.Regex.IsMatch(val, @"^[1-
9]\d*\.?[0]*$"); 
} 
MӛWVӓEjLÿӏFNKiF 
ĈӍQKGңQJKLӅQWKӍFKRNLӅXGӱOLӉX'RXEOH)ORDWWURQJ& 
Nhӱng ví dӧVDXFKӋFKREңQFiFKWKӫFÿӍQKGңQJQKӱQJVӓNLӅXIORDGVDQJNLӅXNê
tӳWURQJ&6EҳQJFiFKVӯGӧQJKàm static cөDOӝS6WULQJOà String.Format. 
SӓVDXGҧXFKҧP 
Ví dӧÿӍQKGңQJQày chuyӅQÿӗLPӛWVӓGRXEOHVDQJVWULQJYӝLNӁWWK~Oà 2 chӱVӓ
thүSSKkQÿҳQJVDX ĈӍQKGңQJ sӯGӧQJOà: „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ӧWLӁSWKHRFKRSKpSEңQU~WJӏQQKӱQJVӓWKүSSKkQWKӭDÿҳQJ sau dҧXFKҧP
sӯGӧQJÿӍQKGңQJ „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ӓWUѬӝFGҧXFKҧPWKүSSKkQ 
SӯGӧQJÿӍQKGңQJÄFK~QJ ta sҿ ÿѬӥFNӁWTXҥOà sӓWUѬӝFGҧXFKҧPO~FQào 
cNJQJOӝQKѪQKRҹFEăQJYà sau nó là mӛWFKӱVӓ 
PROFESSIONAL PROGRAMMING FOR REAL LIFE 
PhɞP7XɢQ$QK - C͕QJ&1779LʄW1DP 120 
String.Format("{0:00.0}", 123.4567); // "123.5" 
 String.Format("{0:00.0}", 23.4567); // "23.5" 
 String.Format("{0:00.0}", 3.4567); // "03.5" 
String.Format("{0:00.0}", -3.4567); // "-03.5" 
Cách phҩQQJàn 
SӯGӧQJÿӍQKGңQJPҭXÄ 
String.Format("{0:0,0.0}", 12345.67); // "12,345.7" 
String.Format("{0:0,0}", 12345.67); // "12,346" 
Sӓ 
String.Format("{0:0.0}", 0.0); // "0.0" 
String.Format("{0:0.#}", 0.0); // "0" 
 String.Format("{0:#.0}", 0.0); // ".0" 
String.Format("{0:#.#}", 0.0); // "" 
9jVDXÿk\OjPӛWVӓYtGӧYXL 
 String.Format("{0:my number is 0.0}", 12.3); // "my number is 12.3" 
String.Format("{0:0aaa.bbb0}", 12.3); // "12aaa.bbb3" 
GӡL(PDLO tӭPӛWWUDQJ$631(7 
GӡLHPDLOOà mӛW\êu cҩXFҩQSKҥLWKӳFKLӉQÿӓLYӝLPӛWӫQJGӧQJZHEFKҵQJKңQ
QKѬQJѬӟLVӯGӧQJÿăQJNêWKành viên cөDWUDQJZHEFөDEңQEңQVҿJӡLPӛWHPDLO
ÿӅ[iFQKүQYLӉFÿăQJNêQày. ASP.NET cung cҧSFKREңQWKѬYLӉQÿӅOàm viӉFYӝL
email thông qua namespace System.Web.Mail. 
ĈRңQPã lӉQKVDXÿk\FKRSKpSJӡLPӛW+70/(PDLO 
MailMessage msg = new MailMessage(); 
 StringWriter strwriter = new StringWriter(); 
 HtmlTextWriter htmltxtwriter = new HtmlTextWriter(strwriter); 
 htmltxtwriter.RenderBeginTag("html"); 
 htmltxtwriter.RenderBeginTag("head"); 
 htmltxtwriter.RenderBeginTag("title"); 
 htmltxtwriter.Write("Thank You!"); 
 htmltxtwriter.RenderEndTag(); 
 htmltxtwriter.RenderEndTag(); 
 htmltxtwriter.RenderBeginTag("body"); 
 htmltxtwriter.Write("Thank you for registering with Itgatevn.com.vn"); 
 htmltxtwriter.RenderEndTag(); 
 htmltxtwriter.RenderEndTag(); 
 msg.From = "ITGATEVN.COM.VN"; 
 msg.To = this.TextBox1.Text.Trim(); 
 msg.Bcc = "pta30000@gmail.com"; 
 msg.Subject = "Thanks for registering"; 
 msg.Body = strwriter.ToString(); 
 msg.BodyFormat = MailFormat.Html; 
 SmtpMail.Send(msg); 
PROFESSIONAL PROGRAMMING FOR REAL LIFE 
PhɞP7XɢQ$QK - C͕QJ&1779LʄW1DP 121 
Upload file hình ҥQKYjRFѪVӡGӱOLӉX64/ 
ASP.NET cung cҧSPӛWFiFKWKӫFÿѪQJLҥQÿӅFүSQKүWKình ҥQKYjRFѪVӡGӱOLӉX
SQL Server. Hình ҥQKFyWKӅÿѬӥFOѬXWUӱWURQJPӛWFѪVӡGӱOLӉXYӝLWKXӛFWtQK
cөDEҥQJOà kiӅXLPDJH 
BңQFyWKӅVӯGӧQJFkXOӉQK64/VDXÿӅWңR mӛWEҥQJFKRSKpSOѬXWUӱKình ҥQK 
CREATE TABLE [dbo].[_image]( 
[Img _id] [int] identity(1,1) CONSTRAINT [pk_image] PRIMARY KEY NOT 
NULL, 
[Img _name] [varchar] (30) not NULL, 
[Img _file] [IMAGE] NULL, 
[Img _type] [varchar] (30) NULL 
) 
ON [PRIMARY] Textimage_on [PRIMARY] 
7URQJÿy 
ƒ ,PJBLGOѬXWUӱLGFөDKình và là khóa chính cөDEҥQJ 
ƒ ,PJBQDPHOѬXWUӱWên cөDKình ҥQK 
ƒ ,PJBILOHOѬXWUӱKình ҥQK 
ƒ ,PJBW\SHOѬXWUӱNLӅXQӛLGXQJFөDKình ҥQK 
Bây giӟFK~QJWDWLӁQKành thӳFKLӉQFiFEѬӝFÿӅXSORDG hình vào cѪVӡGӱOLӉX 
1. TңRPӛW:HEIRUPÿӅXSORDGILOHKình 
2. Upload hình vào cѪVӡGӱOLӉX 
TңR:HEIRUPÿӅWҥLILOHKình ҥQK 
BңQWңRIRUPXSORDGKình nhѬVDX 
 <table id="table1" border="0" cellpadding="0" style="border-collapse: 
collapse" 
 width="100%"> 
  Image Name 
   
 <asp:TextBox ID="txtname" 
runat="server"> 
  File to Upload 
   
   
PROFESSIONAL PROGRAMMING FOR REAL LIFE 
PhɞP7XɢQ$QK - C͕QJ&1779LʄW1DP 122 
   
 <asp:Button ID="btupload" runat="server" Text="Upload" 
OnClick="btupload_Click" /> 
   
   
   
TҥLILOHKình vào cѪVӡGӱOLӉX 
.KLQJѬӟLGùng nhҧQYào nút Upload, sӳNLӉQbtupload_Click ÿѬӥFJӏL%ңQFyWKӅ
FRS\ÿRңQPã lӉQKVDXYào sӳNLӉQbtupload_Click 
protected void btupload_Click(object sender, EventArgs e) 
 { 
 // tңRÿӓLWѬӥQJ6WUHDP 
 System.IO.Stream img_strm = fileimage.PostedFile.InputStream; 
 // nhүQNtFKWKѬӝFFөDKình 
 int img_len = fileimage.PostedFile.ContentLength; 
 // nhүQNLӅXKình 
 string strType = fileimage.PostedFile.ContentType; 
 string strName = txtname.Text; 
 // tңRPҥQJNLӅXE\WHFөDILOHÿã ÿѬӥFXSORDG 
 byte[] imgData = new byte[img_len]; 
 int n = img_strm.Read(imgData, 0, img_len); 
 int result = SaveToDB(strName, imgData, strType); 
 } 
// Hàm SaveToDB() 
int SaveToDB(string imgName, byte[] imgbin, string imgcontenttype) 
 { 
 OleDbConnection con = new 
OleDbConnection("Provider=SQLOLEDB;server=(local);database=_NET;uid=_net;pwd="); 
 OleDbCommand cmd = new OleDbCommand("INSERT INTO _image values(?,?,?)", 
con); 
 OleDbParameter param0 = new 
OleDbParameter("@imgName",OleDbType.VarWChar, 30); 
 param0.Value = imgName; 
 cmd.Parameters.Add(param0); 
 OleDbParameter param1 = new OleDbParameter("@imgName", 
OleDbType.Binary); 
 param1.Value = imgbin; 
 cmd.Parameters.Add(param1); 
 OleDbParameter param2 = new OleDbParameter("@imgType", 
OleDbType.VarWChar, 30); 
PROFESSIONAL PROGRAMMING FOR REAL LIFE 
PhɞP7XɢQ$QK - C͕QJ&1779LʄW1DP 123 
 param2.Value = imgcontenttype; 
 cmd.Parameters.Add(param2); 
 con.Open(); 
 int numofwsAffected = cmd.ExecuteNonQuery(); 
 con.Close(); 
 return numofwsAffected; 
 } 
Và bây giӟ, file hình ÿã ÿѬӥFOѬXWUӱWURQJFѪVӡGӱOLӉXFөDEңQ 
THAM KHҤ2 
Các bңQFyWKӅWKDPNKҥRWKêm kiӁQWKӫFWңLPӛWVӓÿӍDFKӋVDXÿk\ 
- 7KѬYLӉQEài viӁWF{QJQJKӉ ITGATEVN -  
- 7KѬYLӉQ06'1 

File đính kèm:

  • pdfToàn tập giáo trình Microsoft .NET (C#).pdf