1. Trang chủ
  2. » Luận Văn - Báo Cáo

MICROSOFT PROFESSIONAL PROGRAMMING FOR REAL LIFE

120 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 120
Dung lượng 2,66 MB

Nội dung

Toơn tүp giƠo trình nơy lơ kӁt quҥ cөa sӳ cô đӏng nhӱng kiӁn thӫc cần thiӁt giúp bңn lơm chө nӃn tҥng .NET cho công viӉc. Chúng tôi đã đúc kӁt nhӱng kinh nghiӉm thӳc tӁ, rút gӏn nhӱng điӃm cần lưu Ứ, nhӱng kỹ thuүt mơ hầu hӁt cƠc công ty phần mӃm phƠt triển ӫng dӧng trên nӃn tҥng .NET đӃu yêu cầu thӳc hiӉn. HѪn nӱa đây còn lơ tơi liӉu mơ bңn có thể sӯ dӧng để ôn tүp lңi nhӱng kiӁn thӫc sau nhӱng giӟ lên lớp vơ đặc biӉt trong công viӉc cөa cƠc bңn. Xuất thân từ một nhơ phƠt triển, chuyên gia phân tích hӉ thống, tôi đã gói nhӱng kiӁn thӫc cốt lõi vơ cần thiӁt nhất trong lүp trình trên công nghӉ .NET vơo tơi liӉu nơy. Nhӱng ví dӧ trong tơi liӉu lơ nhӱng ví dӧ thӳc tӁ đưӥc tôi trích lӏc từ nhӱng dӳ Ơn mơ tôi vơ đồng sӳ đã thӳc hiӉn trong suốt thӟi gian tham gia lơm viӉc tơi nhiӃu công ty phần mӃm lớn, đó lơ cƠc tình huống cӧ thể mơ chúng tôi gặp phҥi, vơ giӟ đây tôi tổng kӁt lңi để giới thiӉu đӁn cƠc bңn như một sӳ chia sẻ kinh nghiӉm. Sau thӟi gian lơm viӉc vơ hoңt động trên mңng thông tin ViӉt Nam - www.itgate.com.vn - đã có nhiӃu ngưӟi bңn lơm viӉc tңi cƠc công ty tin hӏc trong nước cũng như cƠc bңn bè cөa tôi trên mңng gӡi email, hỏi đƠp vơ yêu cầu tôi viӁt một tơi liӉu đầy đө vӃ lүp trình .NET, chia sẻ nhӱng kinh nghiӉm thӳc tӁ trong công viӉc để mӏi ngưӟi cùng tham khҥo, phҥi ngắn gӏn vơ thүt sӳ thӳc tӁ nhưng lңi phҥi chuyên sâu vơ thể hiӉn nhӱng kỹ thuүt cao trong lүp trình. Tôi đã nghĩ vӃ nhӱng yêu cầu đó, vơ quyӁt đӍnh viӁt tơi liӉu nơy vơo mỗi buổi tối sau giӟ lơm viӉc. Đây như một món quơ đƠp lңi sӳ tín nhiӉm, yêu mӁn mơ cƠc bңn đã, đang vơ sẽ dơnh cho tôi. Tôi rất mong nhүn đưӥc nhiӃu Ứ kiӁn đóng góp cөa cƠc bңn cho tơi liӉu nơy, vơ tôi sẽ tổng hӥp lңi để cүp nhүt cho tơi liӉu một tốt hѪn. Tôi mong rằng tơi liӉu nơy sẽ đồng hơnh cùng cƠc bңn trong công viӉc. TƠc giҥ

MICROSOFT NET (C#) PROFESSIONAL PROGRAMMING FOR REAL LIFE TƠc gi : Email: Công ty: Ph m Tuấn Anh tuan.savi@live.com Xa Lộ Thông Tin (iNGA Co.,Ltd.) L I NG Toơn t p giƠo trình nơy lơ k t qu c a s cô đ ng nh ng ki n th c cần thi t giúp b n lơm ch n n t ng NET cho công vi c Chúng đúc k t nh ng kinh nghi m th c t , rút g n nh ng m cần lưu Ứ, nh ng kỹ thu t mơ hầu h t cƠc công ty phần m m phƠt triển ng d ng n n t ng NET đ u yêu cầu th c hi n H n n a cịn lơ tơi li u mơ b n s d ng để ôn t p l i nh ng ki n th c sau nh ng gi lên lớp vơ đặc bi t công vi c c a cƠc b n Xuất thân từ nhơ phƠt triển, chun gia phân tích h thống, tơi gói nh ng ki n th c cốt lõi vơ cần thi t l p trình cơng ngh NET vơo tơi li u nơy Nh ng ví d tơi li u lơ nh ng ví d th c t đư c tơi trích l c từ nh ng d Ơn mơ vơ đồng s th c hi n suốt th i gian tham gia lơm vi c tơi nhi u công ty phần m m lớn, lơ cƠc tình c thể mơ gặp ph i, vơ gi tổng k t l i để giới thi u đ n cƠc b n s chia sẻ kinh nghi m Sau th i gian lơm vi c vơ ho t động m ng thông tin Vi t Nam www.itgate.com.vn - có nhi u ngư i b n lơm vi c t i cƠc công ty tin h c nước cƠc b n bè c a m ng g i email, hỏi đƠp vơ yêu cầu vi t tơi li u đầy đ v l p trình NET, chia sẻ nh ng kinh nghi m th c t công vi c để m i ngư i tham kh o, ph i ngắn g n vơ th t s th c t l i ph i chuyên sâu vơ thể hi n nh ng kỹ thu t cao l p trình Tơi nghĩ v nh ng yêu cầu đó, vơ quy t đ nh vi t tơi li u nơy vơo buổi tối sau gi lơm vi c Đây quơ đƠp l i s tín nhi m, yêu m n mơ cƠc b n đã, vơ dơnh cho Tôi mong nh n đư c nhi u Ứ ki n đóng góp c a cƠc b n cho tơi li u nơy, vơ tổng h p l i để c p nh t cho tơi li u tốt h n Tôi mong tơi li u nơy đồng hơnh cƠc b n công vi c TƠc gi Ph m Tuấn Anh PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) B N QUY N TỆC GI Tơi li u nơy đư c Ph m Tuấn Anh th c hi n nhằm ph c v m c đích đơo t o nhân l c chư ng trình đơo t o cơng ngh NET Cổng Công ngh thông tin Vi t Nam th c hi n, vơ đư c lưu hơnh nội ph m vi không gian đơo t o c a chư ng trình Tơi li u nơy đư c xây d ng từ ki n th c vơ kinh nghi m có đư c th i gian dơi ho t động c a ơng Ph m Tuấn Anh, có tham kh o số tơi li u nước ngoơi đư c li t kê t i m c THAM KH O cuối tơi li u nơy M i s chép, lưu, xuất b n, chuyển giao không đư c s Ph m Tuấn Anh lơ không h p phƠp cho phép c a ông TƠc gi Ph m Tuấn Anh PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) M C L C L P TRỌNH NET (C#) Cấu trúc l p trình C# b n ng dụng “C# Hello World” Ti p c n C# - 10 Khai báo bi n C# 11 Kiểu d li u C# 11 Input/Output C# b n 11 Cấu trúc u khiển l p trình C# 12 Cấu trúc if 12 Cấu trúc switch … case 12 Cấu trúc vịng lặp l p trình C# 13 Vòng Vòng Vòng Vòng lặp lặp lặp lặp While for foreach 13 14 14 14 Arrays - M ng C# 15 Chúng ta h c 15 Bài t p t th c hi n 16 Hi n th c khƠi ni m hướng đối tư ng (OOP) C# 17 L p (class) C# 17 Class 18 Đối t ợng (Objects) 18 u điểm c a vi c sử dụng Class Đối t ợng 18 Hàm t o (Constructors) hàm h y (Destructors) C# 18 Constructors 18 Destructors 19 Fuction Overloading 19 Thừa k C# 20 Overriding, Polymorphism C# 21 Overriding 21 Polymorphism 22 Abstract Class C# 24 Namespaces 24 Khái ni m Namespace 24 Khai báo m t Namespace 24 C Enumerator C# 25 BẪI T P Cọ H NG D N 25 S D LI U 27 Thao tác v i h qu n trị d li u MSSQL Server 28 Khởi t o m t h sở d li u T o b ng Truy vấn d li u từ m t b ng Truy vấn d li u có u ki n Truy vấn d li u từ nhi u b ng Thêm d li u vào b ng C p nh t d li u b ng Xóa d li u từ b ng 28 28 28 29 29 31 31 31 L P TRỌNH DÀNH CHO CÔNG VI C 32 ADO.NET vơ thao tƠc với c s d li u - 33 Gi i thi u v ADO.NET 34 Mơ hình ADO.NET 34 Data Provider K t nối Data Adapter Thu c tính ph ơng th c c a Data Adapter Data Command Data Reader DataSet PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 34 35 35 35 36 36 37 BẪI T P Cọ H NG D N 38 BẪI T P T RÈN LUY N 38 Data Binding 38 Khái ni m Data Binding 38 Th c hi n Data Binding thông qua cƯu l nh truy vấn 39 L c x p d li u 39 L c m t Dataset 39 Sử dụng cƯu l nh SQL có tham số 39 Thêm, c p nh t, xóa d li u sở d li u 40 Thêm m i d li u vào sở d li u 40 C p nh t, xóa d li u sở d li u 40 XƯy d ng m t l p CSDL dùng chung 42 XƯy d ng l p giao ti p v i CSDL - DBClass 42 Sử dụng l p giao ti p v i CSDL - DBClass 45 Xây d ng ng d ng Windows Form 45 XƯy d ng Windows Forms 45 Visual Studio NET Integrated Development Environment (IDE) 45 T o m t d án Visual Studio Net 46 Window Form Controls 50 Windows Form Thu c tính Windows Form S ki n Windows Form TextBox Control Label Control LinkLabel Control ListBox Control ComboBox Control CheckBox Control RadioButton Control GroupBox Control Button Control 50 51 51 52 52 53 53 55 55 56 56 56 T o control đ ng Windows Form 56 Sử dụng nh ng l p thừa k CommonDialog 56 L p ColorDialog 56 L p FontDialog 58 Làm vi c v i Menus xƯy d ng ng dụng MDI 59 XƯy d ng ng dụng MDI 61 Bài t p có h ng d n 62 Bài t p t luy n 62 Qu n lỨ lỗi l p trình C# 63 Xây d ng h XƯy d ng S thống ng d ng n n t ng Web - ASP.NET 65 ng dụng Hello ASP.NET sử dụng Visual Studio NET IDE 66 ki n Page_Load() 70 Các đối t ợng ASP.NET 71 Đối t ợng Request 71 Đối t ợng Response 72 Đối t ợng Session 72 XƯy d ng ng dụng Web sử dụng Server Controls 73 Server Controls HTML Server Controls HtmlAnchor HtmlInputText HtmlInputCheckBox HtmlInputRadioButton HtmlSelect Control 73 73 74 74 75 75 75 Web Server Controls 75 TextBox Control Literal Control FileUpload Control Panel Control View & MultiView Control Calendar Control PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 76 76 76 76 77 77 DropDownList Control 77 Đi u khiển Server Controls 78 K t nối sở d li u ASP.NET 80 DataBinding ASP.NET Binding d li u vào m t DropDownList Control Thu c tính IsPostBack Web Server Control Template Repeater Control Gắn u khiển vào Repeater 80 81 82 82 83 89 T o sử dụng UserControl ng dụng UserControl xƯy d ng ng dụng WebPortal Hi n th c ki n trúc WebPortal Ki n trúc t i UserControl đ ng sử dụng PlaceHolder Bài t p t ôn luy n 91 94 95 96 97 UserControl Cấu hình cho ng dụng xƯy d ng WebPortal 91 ng dụng Web ASP.NET 97 Mục 98 Đ c giá trị từ thẻ appSettings 98 Thẻ 98 Xuất b n m t ng dụng Web ASP.NET 99 Triển khai m t ng dụng Website ASP.NET IIS 100 PhƠt triển h thống ng d ng doanh nghi p với NET - 105 Web Services 106 D Khởi t o g i m t Web Services 106 ỆN 113 Project 1. - 113 D án: Website thông tin bán hàng tr c n 113 D án: H Project 2. - 113 thống qu n trị kho hàng 113 Đ C THễM 113 ASP.NET & AJAX Framework - 114 H c s d li u MySQL Server 5.0 & l p trình thao tƠc d li u với MySQL Server. 114 K t nối đ n sở d li u MySQL 114 Regular Expressions Error! Bookmark not defined Gởi Email từ m t trang ASP.NET 118 Upload file hình nh vào sở d li u SQL 118 THAM KH O 121 PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) L P TRỌNH NET (C#) NET lơ n n t ng cho phép phƠt triển nh ng ng d ng hoơn toơn c hai môi trư ng Win vơ Web Khi s d ng NET, đòi hỏi ph i s d ng ngôn ng để khai thƠc h t s c m nh c a C# lơ ngơn ng l a ch n để s d ng vơ giới thi u đ n b n C# đư c phƠt triển từ C/C++ vơ gi nguyên tên gia đình C, kỨ t # đư c s d ng s khẳng đ nh v tính sắc bén c a ngơn ng nơy, C# đư c phƠt âm lơ C sharp PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) Cấu trúc l p trình C# b n ng dụng “C# Hello World” Hellow World lơ chư ng trình để m đầu cho vi c h c ngơn ng trình nơo đó, với C# th , bắt đầu với “C# Hello World” l p Ví dụ 1: Sau lơ chư ng trình C# Hello World, mã nguồn sau: /*This is Hellow World C# Program*/ using System; using System.Collections.Generic; using System.Text; namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine("Welcome to C# World"); } } } K t qu xuất hi n c a chư ng trình sau PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) Ti p c n C# Nh ng ch đ T i phần nơy, b n h c:      Bi n l p trình C# Kiểu d li u Cấu trúc u ki n Cấu trúc vòng lặp M ng C# PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 10 Khai báo bi n C# CƠc bi n C# đư c khai bƠo theo công th c sau: AccessModifier DataType VariableName; Trong đó, AccessModifier: xƠc đ nh ưu tiên truy xuất tới bi n Datatype: đ nh nghĩa kiểu lưu tr d li u c a bi n VariableName: lơ tên bi n Cấp độ truy xuất tới bi n đư c mô t b ng Access Modifier Mô t public Truy c p t i n i đâu protected Cho phép truy xuất bên lớp n i bi n nơy đư c đ nh nghĩa, từ cƠc lớp c a lớp private Chỉ truy xuất Kiểu d bên lớp n i mơ bi n đư c đ nh nghĩa li u C# CƠc kiểu d li u đư c s C# Data Type d ng ngôn ng C# đư c mơ t Mơ t Ví dụ object kiểu d li u c kiểu khƠc string Đư c s d ng để lưu tr tr kiểu ch cho bi n int S d ng để lưu tr nguyên giƠ tr byte s d ng để lưu tr giƠ byte float S d ng để lưu tr giƠ tr bool Cho phép bi n lưu tr sai b n c a tất c cƠc nh ng giƠ Cho phép bi n lưu tr t char kiểu số object obj = null; string str = "Welcome"; int ival = 12; byte val = 12; số th c float val = 1.23F; giƠ tr bool val1 = false; kỨ Input/Output C# b n Input /output C# đư c th c hi n thông qua vi c s namespace System Hai hơm thư ng s theo b ng bool val2 = true; char cval = 'a'; d ng hơm c a lớp Console d ng cho thao tƠc Input/Output lơ: Console.WriteLine(); Console.ReadLine(); Trong dó, PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 11 C a sổ t o d Ơn Click chuột ph i file Webservices_CurrentDollarConverter.asmx t i c a sổ Solution Explorer vơ ch n View Code để m Thêm dòng mã l nh sau vơo c a sổ so n th o mã l nh u khiển chư ng trình, lớp Service1 [WebMethod] public double ConvertDollar2Current(double value) { double rate = 16102;// tỷ giƠ ti n Vi t vơ đồng $ return value * rate; } Nhấn F5 để ch y chư ng trình Webservice xuất hi n, nhấn vơo liên k t ConvertDollar2Current để th c hi n g i webservice nơy PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 107 Sau nhấn vơo liên k t ConvertDollar2Current trang Web Service, mơn hình sau xuất hi n cho phép nh p vơo tham số Web Service sau: PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 108 T i ô giá trị (value:), b n nh p vơo số tư ng đổi, vơ nhấn Invoke 10 K t qu xuất hi n sau: ng với số dollar để chuyển Sau kiểm tra ng d ng, ti n hơnh build lớp Web Service để t o thư vi n d a liênk t động (DLL), cƠch ch n menu Build, Build Solution Bây gi Web Service s d ng t i ng d ng nơo B n ti n hơnh th nghi m g i vơ th c thi Web Services nơy từ ng d ng Web khƠc, trước ti n hơnh g i, b n ph i triển khai Web Services vừa t o, vi c triển khai Web Service tư ng t vi c triển khai ứng dụng web ASP.NET mơ b n đư c h c phần trước Sau triển khai Webservice, b n th c hi n cƠc bước sau   M ng d ng ConvertDollar2Current th c hi n phần trước T i c a sổ Solution Explorer, ch n project vơ nhấn chuột ph i, popup menu xuất hi n, ch n Add Web References… mô t sau: PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 109  C a sổ Add Web Reference xuất hi n, t i m c URL, b n http://localhost/Webservices_ConvertDollar2Current/service.asmx lơ đư ng c a Web Service vừa triển khai, nhấn nút Go, k t qu sau: PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) gõ d n 110     Danh sƠch nh ng hơm Webservice b n xây d ng đư c li t kê t i pane bên t i m c Web reference name, b n gõ localhost Nhấn Add Reference Web Service đư c add vơo T i s ng d ng vơ sẵn sơng s d ng ki n c a nút “Chuyển đổi”, b n th c hi n sau: protected void btnconvert_Click(object sender, EventArgs e) { //khong su dung webservice //this.lblresult.Text = (Convert.ToDouble(this.txtdollar.Text.Trim()) * 16102).ToString(); // su dung web service // Khai bƠo đối tư ng c a class Service WebService localhost.Service ws_dollar2current = new localhost.Service(); // G i hơm từ đối tư ng Web Service this.lblresult.Text = ws_dollar2current.ConvertDollar2Current(Convert.ToDouble(this.txtdollar.Text)) ToString(); }   Để đổi dollar ti n Vi t, trước th c hi n phép tính, ng d ng webservice, b n cần khai bƠo đối tư ng Web Service vơ g i hơm từ đối tư ng nơy Nhấn F5 để th c thi PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 111 B n s d ng Web Service thơnh công PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 112 D ỆN Project D án: Website thông tin bán hàng tr c n Mô t : SunToys lơ công ty xuất đồ ch i toơn th giới Công vi c kinh doanh c a h liên t c phƠt triển th trư ng châu Âu, năm tới, h muốn s n phẩm c a có mặt t i th trư ng Mỹ SunToys yêu cầu xây d ng h thống phần m m cho phép khƠch hơng t i th trư ng Mỹ xem thơng nh ng s n phẩm c a h H n th n a, SunToys kỨ k t với hãng chuyển phƠt s n phẩm t i Mỹ cho phép s n phẩm c a SunToys đ n tay ngư i tiêu dùng cƠ nhân S n phẩm sau đư c ch n mua, đư c phân phối sau ba ngơy GiƠm đốc công ty quy t đ nh xây d ng h thống cho phép qu n lỨ số lư ng hơng hóa s n xuất vơ ti p nh n đ n đặt hơng từ khƠch hơng, vơ theo dõi quƠ trình phân phối s n phẩm Lơ công ty phần m m chuyên nghi p b n th c hi n yêu cầu Project D án: H thống qu n trị kho hàng Mô t : INGA lơ t p đoơn phân phối h thống mƠy ch hơng đầu t i Vi t Nam, cơng ty có hai tr s t i Sơi Gịn vơ Hơ Nội Mỗi ngơy, công ty ph i gi i quy t nhi u đ n đặt hơng c a khƠch hơng INGA có kho hơng t i Sơi Gịn, cơng ty muốn xây d ng h thống qu n tr kho hơng vơ qu n lỨ đ n đặt hơng, bƠn hơng với nh ng yêu cầu sau H thống đư c cơi đặt t i mƠy ch t i Sơi Gòn, vơ m i n i nhân viên bƠn hơng đ u th c hi n vi c tra c u thơng tin hơng hóa vơ th c hi n gi i quy t đ n hơng mơ không cần ph i cơi đặt mƠy tính th Hãy th c hi n yêu cầu c a INGA Đ C THễM PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 113 ASP.NET & AJAX Framework ASP.NET AJAX lơ cơng ngh mi n phí cho phép ngư i l p trình t o nh ng ng d ng web động Cho phép b n t o nh ng website cƠ nhân đ n nh ng h thống website lớn có độ tư ng tƠc cao B n t i ng d ng nơy v từ website ASP.NET có đ a http://www.asp.net Xem hướng d n t o ng d ng với ASP.NET AJAX theo s d n c a gi ng viên H c s d li u MySQL Server 5.0 & l p trình thao tƠc d li u với MySQL Server MySQL lơ h c s d li u mã nguồn m ti ng d li u với tốc độ truy c p cao, m nh mẽ, d s d ng thống lớn Yahoo, Google, Nokia, YouTube … Vi c s mã m , mi n phí giúp ti t ki m chi phí cho doanh nghi vơ s d ng mi n phí h c s d li u nơy thông qua đ a th giới, lơ h c s Đư c s d ng b i nhi u h d ng h c s d li u p c a b n B n t i www.mysql.com MySQL cung cấp kh giao ti p với C# cƠch m nh mẽ vơ d dơng thông qua namespace MySQL.Data.MySqlClient CƠch th c th c hi n giao ti p d li u với MySQL giống cƠch th c mơ b n lơm vi c với ADO.NET trình bơy phần trước Để s d ng namespace MySQLClient, đòi hỏi b n ph i tham chi u đ n thư vi n nơy ch n References di chuyển đ n t p tin MySQL.Data.dll Nhấn OK để th c hi n Sau tham chi u file MySQL.Data.dll vơo project, để s thư vi n nơy, b n ph i khai bƠo s d ng thư vi n d ng cƠc hơm using MySql.Data; using MySql.Data.MySqlClient; Từ b n s d ng nh ng hơm, th K t nối đ n sở d t c thư vi n MySQL li u MySQL Đo n mã l nh sau th c hi n vi c k t nối đ n c C# s d li u MySQL l p trình MySqlConnection = new MySqlConnection("server=localhost;database=_net;uid=root;pwd=root"); con.Open(); Response.Write("Connected into MySQL Database"); con.Close(); Sau k t nối đ n c s d li u MySQL, b n th c hi n câu truy vấn đ n b ng c s d li u nơy, đo n mã l nh sau th c hi n truy vấn đ n b ng vơ hiển th số dòng d li u có b ng nơy MySqlConnection = new MySqlConnection("server=localhost;database=_net;uid=root;pwd=root"); con.Open(); Response.Write("Connected into MySQL Database"); MySqlCommand cmd = new MySqlCommand("select * from list",con); cmd.CommandType = CommandType.Text; MySqlDataAdapter da = new MySqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds, "list"); Response.Write(ds.Tables["list"].Rows.Count.ToString()); PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 114 con.Close(); Hai ví d cho thấy, l p trình k t nối c s d li u MySQL s d ng Namespace MySQL.Data.MySqlClient giống lơm vi c với h c s d li u MSSQL thông qua ADO.NET Ví d sau mơ t rõ h n v vấn đ nơy MySqlConnection = new MySqlConnection("server=localhost;database=_net;uid=root;pwd=root"); con.Open(); Response.Write("Connected into MySQL Database"); // th c hi n thêm d li u vơo CSDL cmd = new MySqlCommand("insert into list values(0,'New record 1','Description Record 1')"); cmd.Connection = con; cmd.ExecuteNonQuery(); Response.Write("Inserted into MySql DB"); // th c hi n c p nh t d li u cmd = new MySqlCommand("update list set name='Updated Name' where id=?id"); cmd.CommandType = CommandType.Text; cmd.Parameters.Add("?id", "1"); cmd.Connection = con; cmd.ExecuteNonQuery(); con.Close(); K t nối với CSDL s d ng SQLClient Regular Expressions Regular Expression lơ chuỗi nh ng kỨ t dùng để biểu di n (thay th ) cho chuỗi nơo Regular Expression lơ kỹ thu t khó s d ng phư ng phƠp so sƠnh B ng sau thể hi n nh ng biểu th c thư ng s d ng Mô t tra kiểm Một t p h p kỨ t Công th c [ \w ] Mô t Ví dụ Đư c s d ng để so sƠnh kỨ t nằm [ ] Có thể đư c s d ng để xƠc đ nh chuỗi kỨ t bắt đầu vơ k t thúc vi c s d ng dấu g ch ngang, [a-z] “P[0-5]” Kiểm tra mã s n phẩm bắt đầu với kỨ t P vơ theo sau b i nh ng số kho ng đ n Đư c s d ng sƠnh từ, số, g ch “\w{8,20}” kiểm tra m t với độ dơi nhỏ lơ kỨ t vơ lớn lơ 20 kỨ t để kỨ so t {n} PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 115 Mô t tra kiểm Công th c Kho ng KỨ kỨ t bất Một kỨ t không ph i kỨ t kho ng trắng Một nhi u kỨ t Bất kỨ kỨ t đ n Một kỨ t trắng Một số KỨ Escape t Khơng có có nhi u ch \S + ? \s \d \ * Mơ t Ví dụ Đư c s d ng để so sƠnh biểu th c l p l i n lần “P[0-9] {4}” kiểm tra mã s n phẩm bắt đầu kỨ t P vơ theo sau b i số nằm kho ng đ n Đư c s d ng để kiểm tra kỨ t ngo i trừ kỨ t xuống dòng “2.12.2008” kiểm tra đ nh d ng d li u có d ng: 1/12/2008, 2-12-2008, 12 2008 vơ c 2.12.2008 Đư c dùng để kiểm tra kỨ t ngo i trừ kho ng trắng, tabs, vơ kỨ t xuống dòng “http://\S\S\S\S\S\S.\S\S\S.\S\S” kiểm tra đ a web có đư c nh p như, http://itgatevn.com.vn S d ng để kiểm tra có s xuất hi n biểu th c trước “\S+@\S+\ S+” Kiểm tra đ a pta30000@gmail.com mail Đư c s d ng để kiểm tra kỨ t đ n nơo trước “programs? “ xƠc đ nh kỨ t s ch programs có khơng có đư c s d ng để kiểm tra kỨ t bao gồm: kho ng trắng, tabs, vơ kỨ t xuống dòng “\smore” kiểm tra kho ng trắng trước từ Đư c s d ng để kiểm tra số kho ng đ n “\d{5} Kiểm tra số có năm ch 11101 Đư c s d ng để kiểm tra kỨ t theo sau dấu g ch chéo ngư c “\~” kiểm tra ngư i dùng nh p kỨ t ~ vơo chưa Đư c s d ng để kiểm tra khơng có có nhi u kỨ t biểu th c “P*\d{3}” kiể tra đầu vơo c a mã s n phẩm bắt đầu kỨ t P P333,P777 Regular Expression giúp kiểm tra d li u ngư i dùng nh p vơo từ trƠnh nh ng lỗi xuất phƠt từ vi c nh p d li u c a chư ng trình PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) số ng d ng, để 116 Một số ng d ng c a Regular Expressions Hàm kiểm tra tính hợp lệ 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ểm tra xem đường dẫn địa 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-zAZ0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$"); } Hàm sau dùng để kiểm tra chuỗi có dạng số interger hay khơng public static bool IsValidInt(string val) { return System.Text.RegularExpressions.Regex.IsMatch(val, @"^[19]\d*\.?[0]*$"); } Một số bơi đ c khƠc Định d ng hiển thị cho kiểu d li u Double, Float C# Nh ng ví d sau cho b n cƠch th c đ nh d ng nh ng số kiểu fload sang kiểu kỨ t CS cƠch s d ng hơm static c a lớp String lơ String.Format Số sau dấu chấm Ví d đ nh d ng nơy chuyển đổi số double sang string với k t thú lơ ch th p phân đằng sau Đ nh d ng s d ng lơ: „0.00" số 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 ti p theo cho phép b n rút g n nh ng số th p phân thừa đằng sau dấu chấm, s d ng đ nh d ng „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ố tr c dấu chấm th p phƯn S d ng đ nh d ng: „00.0, đư c k t qu lơ số trước dấu chấm lúc nơo lớn h n băng 2, vơ sau lơ ch số String.Format("{0:00.0}", 123.4567); // "123.5" String.Format("{0:00.0}", 23.4567); // "23.5" PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 117 String.Format("{0:00.0}", 3.4567); // "03.5" String.Format("{0:00.0}", -3.4567); // "-03.5" Cách phần ngàn S d ng đ nh d ng m u: „0,0.0" 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}", String.Format("{0:0.#}", String.Format("{0:#.0}", String.Format("{0:#.#}", 0.0); 0.0); 0.0); 0.0); // // // // "0.0" "0" ".0" "" Và sau đƯy m t số ví dụ vui String.Format("{0:my number is 0.0}", 12.3); // "my number is 12.3" String.Format("{0:0aaa.bbb0}", 12.3); // "12aaa.bbb3" Gởi Email từ m t trang ASP.NET G i email lơ yêu cầu cần ph i th c hi n ng d ng web, chẳng h n ngư i s d ng đăng kỨ thơnh viên c a trang web c a b n, b n g i email để xƠc nh n vi c đăng kỨ nơy ASP.NET cung cấp cho b n thư vi n để lơm vi c với email thông qua namespace System.Web.Mail Đo n mã l nh sau cho phép g i HTML Email 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); Upload file hình nh vào sở d li u SQL PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 118 ASP.NET cung cấp cƠch th c đ n gi n để c p nh t hình nh vơo c s d li u SQL Server Hình nh đư c lưu tr c s d li u với thuộc tính c a b ng lơ kiểu image B n s d ng câu l nh SQL sau để t o b ng cho phép lưu tr CREATE TABLE [dbo].[_image]( [Img _id] [int] identity(1,1) CONSTRAINT NULL, [Img _name] [varchar] (30) not NULL, [Img _file] [IMAGE] NULL, [Img _type] [varchar] (30) NULL ) ON [PRIMARY] Textimage_on [PRIMARY] [pk_image] hình PRIMARY nh: KEY NOT Trong đó,     Img_id: lưu tr id c a hình vơ lơ khóa c a b ng Img_name: lưu tr tên c a hình Img_file: lưu tr hình Img_type: lưu tr kiểu nội dung c a hình Bây gi nh nh nh ti n hơnh th c hi n cƠc bước để upload hình vơo c s d li u T o Webform để upload file hình Upload hình vơo c s d li u T o Webform để t i file hình nh B n t o form upload sau:  Image Name    File to Upload       PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 119       T i file hình vào sở d li u Khi ngư i dùng nhấn vơo nút Upload, s ki n btupload_Click đư c g i B n copy đo n mã l nh sau vơo s ki n btupload_Click protected void btupload_Click(object sender, EventArgs e) { // t o đối tư ng Stream System.IO.Stream img_strm = fileimage.PostedFile.InputStream; // nh n kích thước c a hình int img_len = fileimage.PostedFile.ContentLength; // nh n kiểu hình string strType = fileimage.PostedFile.ContentType; string strName = txtname.Text; // t o m ng kiểu byte c a file đư c upload 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 = 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); param2.Value = imgcontenttype; cmd.Parameters.Add(param2); PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 120 con.Open(); int numofwsAffected = cmd.ExecuteNonQuery(); con.Close(); return numofwsAffected; } Vơ bây gi , file hình đư c lưu tr c s d li u c a b n THAM KH O CƠc b n tham kh o thêm ki n th c t i số đ a sau - Thư vi n bơi vi t công ngh ITGATEVN - http://www.itgatevn.com.vn/articles/ Thư vi n MSDN: http://msdn.microsoft.com PROFESSIONAL PROGRAMMING FOR REAL LIFE Phạm Tuấn Anh – Công ty Xa Lộ Thông Tin (iNGA Co.,Ltd.) 121

Ngày đăng: 13/12/2022, 19:44