Tài liệu Bài giảng ASP.NET: * ASP.NET Lê Văn Hạnh Nguyễn Việt Hùng Trần Đình Nghĩa Ngô Tân Khai * NỘI DUNG Web tĩnh và động Giới thiệu về ASP.NET IIS (Internet Information Services) Các control trong ASP.NET Các đối tượng trong ASP.NET ASP.NET & ADO.NET Xây dựng ứng dụng bán sách qua mạng * I.- Web tĩnh và động1.- Web tĩnh Trang HTML * I.- Web tĩnh và động1.- Web tĩnh (tt) Simple HTML page Welcome You are visitor number 1! Browser Server (IIS) Request("My.html") Response(My.html) My.html My.html * I.- Web tĩnh và động2.- Web động Hoạt động tuân theo mô hình khách/chủ (client/server) * I.- Web tĩnh và động2.- Web động (tt) Các công nghệ tạo web động CGI (Common Gateway Interface) Chương trình dạng nhị phân thi hành trên server C/C++, Pascal, Perl, ... 1 request = 1 CGI instance tốn bộ nhớ, chậm ISAPI (Internet Server API) DLL ASP (Active Server Page), JSP, ... Script Gom các giao tiếp ISAPI vào 1 DLL Dễ bảo trì, xử lý dữ liệu động nhanh, hiệu quả * NỘI DUNG (tt) Web tĩnh và động Giới thiệu về AS...
315 trang |
Chia sẻ: hunglv | Lượt xem: 4407 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng ASP.NET, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
* ASP.NET Lê Văn Hạnh Nguyễn Việt Hùng Trần Đình Nghĩa Ngô Tân Khai * NỘI DUNG Web tĩnh và động Giới thiệu về ASP.NET IIS (Internet Information Services) Các control trong ASP.NET Các đối tượng trong ASP.NET ASP.NET & ADO.NET Xây dựng ứng dụng bán sách qua mạng * I.- Web tĩnh và động1.- Web tĩnh Trang HTML * I.- Web tĩnh và động1.- Web tĩnh (tt) Simple HTML page Welcome You are visitor number 1! Browser Server (IIS) Request("My.html") Response(My.html) My.html My.html * I.- Web tĩnh và động2.- Web động Hoạt động tuân theo mô hình khách/chủ (client/server) * I.- Web tĩnh và động2.- Web động (tt) Các công nghệ tạo web động CGI (Common Gateway Interface) Chương trình dạng nhị phân thi hành trên server C/C++, Pascal, Perl, ... 1 request = 1 CGI instance tốn bộ nhớ, chậm ISAPI (Internet Server API) DLL ASP (Active Server Page), JSP, ... Script Gom các giao tiếp ISAPI vào 1 DLL Dễ bảo trì, xử lý dữ liệu động nhanh, hiệu quả * NỘI DUNG (tt) Web tĩnh và động Giới thiệu về ASP.NET IIS (Internet Information Services) Các control trong ASP.NET Các đối tượng trong ASP.NET ASP.NET & ADO.NET Xây dựng ứng dụng bán sách qua mạng * II.- Giới thiệu về ASP.NET Lịch sử phát triển Một số khái niệm về ASP.NET Quy trình xử lý trang ASP.NET Các chỉ dẫn trong trang ASP.NET IsPostBack và IsCrossPagePostBack Global.asax * II.-Giới thiệu về ASP.NET1.-Lịch sử phát triển Công nghệ ASP của Microsoft đã phát triển qua các giai đoạn chính: 12/1996, ASP version 1.0 ( với IIS 3.0): công nghệ tạo web động 9/1997, ASP 2.0 (IIS 4.0) 11/2000, phiên bản cuối cùng của ASP – ASP version 3.0 (IIS 5.0 ) 01/2002, công nghệ mới ASP.NET 1.0 cùng với bộ Visual Studio.NET 04/2003 Microsoft phát hành phiên bản ASP.NET 1.1 cùng bộ Visual Studio.NET 2003 & Windows Server 2003 07/2005, ASP.NET 2.0 – tên mã là Whidbey 23/01/2007, ASP.NET AJAX 1.0, phần mở rộng cho bộ ASP.NET Hiện nay: ASP.Net 3.0 ! * II.- Giới thiệu về ASP.NET2.- Một số khái niệm ASP là thuật ngữ viết tắt của Active Server Page Là môi trường lập trình kết hợp với HTML, các ngôn ngữ kịch bản như VBScript, JavaScript… để tạo những ứng dụng Internet mạnh mẽ và hoàn chỉnh ASP chạy trên nền Internet Information Services (IIS) ASP.NET kết hợp hai dòng triển khai công nghệ web là Web Forms và Web Services. Chứa dữ liệu dạng text, HTML, XML và script Các đoạn script được thực thi trên server * II- Giới thiệu về ASP.NET2.- Một số khái niệm (tt) Tạo ứng dụng web nhanh chóng đơn giản. Kết xuất dữ liệu động của web. Kiểm tra dữ liệu phía người dùng. Kết nối, rút trích dữ liệu. Đơn giản và tốc độ nhanh. Bảo mật hơn vì mã ASP không thể xem được từ trình duyệt. Một chương trình ASP gọn gàng có thể giảm thiểu hiệu quả lưu lượng truyền tải qua một mạng truyền thông. * II.- Giới thiệu về ASP.NET2.-Một số khái niệm (tt) Phát triển ứng dụng web ở phía Server dựa trên nền tảng Microsoft .Net Framework Cho phép lựa chọn một trong các ngôn ngữ lập trình: C#, Visual Basic.Net, J#, … Sử dụng phong cách lập trình mới: Code behind. Tách phần code riêng, giao diện riêng Dễ đọc, dễ quản lý, bảo trì. Tự động phát sinh mã HTML cho các Server control tương ứng với từng loại browser. Đoạn mã trên ASP.Net được biên dịch chứ không diễn dịch như ASP nên chạy nhanh hơn. * II.- Giới thiệu về ASP.NET2.- Một số khái niệm (tt) Kiến trúc lập trình trên ASP.Net giống ứng dụng trong Windows. Xây dựng ứng dụng không cần đến IIS Hỗ trợ nhiều cơ chế cache. Triển khai cài đặt không cần lock, không cần đăng ký DLL, cho phép nhiều hình thức cấu hình ứng dụng. Hỗ trợ quản lý ứng dụng ở mức toàn cục * II.- Giới thiệu về ASP.NET2.- Một số khái niệm (tt) Thay vì phải đọc và thông dịch mỗi khi được yêu cầu, ASP.Net biên dịch trước những trang web động thành những tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả. * II.- Giới thiệu về ASP.NET2.- Một số khái niệm (tt) Dễ triển khai và cấu hình Machine.config: cấu hình cho mọi ứng dụng ASP.NET trên máy chủ Web.config: cấu hình cho từng Web Site tương ứng Cung cấp nhiều điều khiển server mới: Dữ liệu Điều hướng Đăng nhập Themes & Skin * II.- Giới thiệu về ASP.NET3.- Quy trình xử lý trang ASP.NET Khi Web Server nhận được yêu cầu từ phía client, nó sẽ tìm kiếm tập tin được yêu cầu thông qua chuỗi URL được gửi về, sau đó tiến hành xử lý theo sơ đồ sau: * II.- Giới thiệu về ASP.NET3.- Quy trình xử lý trang ASP.NET (tt) Hai loại lệnh được gửi đến server: + GET: Tên miền Đường dẫn “ /site/ ” Trang web duyệt “index.asp” hay “default.asp” Thêm một số tham số sau dấu chấm hỏi (?) –các tham số phân cách nhau bằng dấu “&” và cú pháp là “tênthamsố=giátrị”. + POST: Tham số được gửi riêng trong 1 HTTP header chứ không thể hiện trong URL như trên. Web form của ASP.Net thường sử dụng POST. * II.- Giới thiệu về ASP.NET3.- Quy trình xử lý trang ASP.NET (tt) … Nội dung trong form gõ bằng văn bản thường. Font chữ cỡ " + CStr(i) + "") next %> … * II.- Giới thiệu về ASP.NET4.- Các chỉ dẫn trong trang ASP.NET Page Assembly Control Implements Import Master OutputCache PreviousPageType Reference Register Dùng kiểm soát hành động của trang web hay các server control * II.- Giới thiệu về ASP.NET5.- IsPostBack và IsCrossPagePostBack Khi làm việc với thẻ Form trong ASP.NET, thuộc tính IsPostBack và IsCrossPagePostBack giúp ta biết được trang được gọi trực tiếp hay được submit Ví dụ: If (IsPostBack) ‘Thực hiện việc khi trang được submit Else ‘Thực hiện việc khi trang được gọi trực tiếp End If * II.- Giới thiệu về ASP.NET6.- Global.asax Được gọi thực hiện tự động mỗi khi có một yêu cầu gửi đến web site Add New Item / Global Application Class để thêm Global.asax vào project Các lệnh được thực hiện thông qua các biến cố: Application_Start, Application_End, Application_Error Session_Start, Session_End * II.- Giới thiệu về ASP.NET6.- Global.asax (tt) Application_Start Được triệu gọi khi web site nhận được yêu cầu đầu tiên Thường được sử dụng để khởi tạo môi trường hay các biến tầm ứng dụng Ví dụ: Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs on application startup Application(“Visitors") = 0 End Sub * II.- Giới thiệu về ASP.NET6.- Global.asax (tt) Application_End Xảy ra khi web site shut down Thường dùng để lưu trữ các dữ liệu cần thiết cho lần Start kế tiếp và giải phóng tài nguyên do ứng dụng nắm giữ * II.- Giới thiệu về ASP.NET6.- Global.asax (tt) Application_Error Xảy ra khi phát sinh lỗi trong bất kỳ trang nào trong web site Thường dùng để chuyển đến các trang báo lỗi riêng của ứng dụng Ví dụ: Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs when an unhandled error occurs Response.Redirect("Errors.aspx") End Sub * II.- Giới thiệu về ASP.NET6.- Global.asax (tt) Session_Start Khác biệt với Application_Start, Session_Start được gọi mỗi khi có một yêu cầu đầu tiên của một user mới Thường dùng để khởi tạo môi trường hay các biến cho riêng từng user Ví dụ: Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs when a new session is started Application("Visitors") = CInt(Application("Visitors")) + 1 End Sub * II.- Giới thiệu về ASP.NET6.- Global.asax (tt) Session_End Xảy ra khi một user kết thúc quá trình duyệt web site (kết thúc phiên làm việc) Thường dùng để lưu trữ các biến của riêng user Ví dụ: Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) ' Code that runs when a new session is started Application("Visitors") = CInt(Application("Visitors")) - 1 End Sub * NỘI DUNG (tt) Web tĩnh và động Giới thiệu về ASP.NET IIS (Internet Information Services) Các control trong ASP.NET Các đối tượng trong ASP.NET ASP.NET & ADO.NET Xây dựng ứng dụng bán sách qua mạng * III.- IIS (Internet Information Sevices) Chức năng của IIS Mô hình hoạt động Cài đặt Sử dụng & cấu hình Ví dụ * IIS: Được sử dụng như một Web Server, kết hợp với ASP để xây dựng các ứng dụng Web Chuyển giao thông tin bằng giao thức chuyển đổi siêu văn bản HTTP IIS sử dụng trong: Xuất bản 1 Home page lên internet Tạo các giao dịch thương mại trên internet Truy xuất cơ sở dữ liệu từ xa IIS là phần mềm của Microsoft dành cho Windows Windows 2000 và Windows XP tích hợp sẵn IIS III.- IIS1.- Chức năng * Hoạt động của IIS: IIS dịch URL sang path cục bộ (vd: d:\domains\thisSite\wwwroot\site\index.aspx) Sử dụng trình biên dịch Common LanguageRuntime dịch sang ngôn ngữ trung gian MSIL, rồi sang mã nhị phân để thực thi. Mã nhị phân được chứa tạm vào 1 vùng. Nếu lần gọi sau cần sử dụng mà trang web không có gì thay đổi thì sẽ lấy sử dụng mà không cần dịch lại. Nếu có thay đổi thì sẽ dịch lại và cập nhật vào vùng này. Server trả về kết quả tương ứng với trình duyệt của client. Trình duyệt client xử lý phần hiển thị. III.- IIS2.-Mô hình hoạt động * Để triển khai 1 ứng dụng, chỉ cần: IIS Framework Webforms(*. aspx) + dll(bin) +style(image,database,…) + web.config Để phát triển ứng dụng IIS .NET IIS được tích hợp sẵn trong bộ cài Windows XP Control panel / Add Remove Programs / Windows Components III.- IIS3.- Hướng dẫn cài đặt * III.- IIS3.- Hướng dẫn cài đặt (tt) Thư mục gốc của Web Server * * * III.- IIS4.- Sử dụng và cấu hình Start Control Panel Administrative Tools Internet Services Manager. * III.- IIS4.- Sử dụng và cấu hình (tt) * III.- IIS4.- Sử dụng và cấu hình (tt) Web Sites Default Web site Properties Thông tin thư mục gốc và Web mặc định * III.- IIS4.- Sử dụng và cấu hình (tt) Web Sites Default Web site New Virtual Directory * III.- IIS4.- Sử dụng và cấu hình (tt) * III.- IIS4.- Sử dụng và cấu hình (tt) * III.- IIS4.- Sử dụng và cấu hình (tt) * III.- IIS5.-Ví dụ Tạo thư mục chứa Web Site: My Documents / Visual Studio 2005 / WebSites / TestWebSite File / New / Web Site Chọn loại ứng dụng là ASP.NET WebSites Chọn Browse và chuyển đến thư mục vừa tạo. Ngôn ngữ là Visual Basic. OK. * III.- IIS5.-Ví dụ (tt) Cửa sổ Solution thể hiện nội dung ứng dụng vừa tạo như bên Nội dung trang web mặc định * III.- IIS5.-Ví dụ (tt) Gõ thêm nội dung như sau * III.- IIS5.-Ví dụ (tt) Nhấn F5 để mở trang web trong Browser * III.- IIS5.-Ví dụ (tt) Trong trang Default.aspx, chuyển sang chế độ Design, bổ sung 1 button control và 1 label control vào trang như hình vẽ sau: Ta sẽ hiển thị dòng chữ clicked khi user click vào button * III.- IIS5.-Ví dụ (tt) Double click vào button và gõ lệnh như sau: Label1.Text = "Clicked“ Nhấn F5 để chạy ứng dụng * NỘI DUNG (tt) Web tĩnh và động Giới thiệu về ASP.NET IIS (Internet Information Services) Các control trong ASP.NET Các đối tượng trong ASP.NET ASP.NET & ADO.NET Xây dựng ứng dụng bán sách qua mạng * IV.- CÁC CONTROL TRONG ASP.NET Server control ASP.NET Server control Các server control đặc biệt Các server control mẫu Các server control kiểm tra dữ liệu * IV.- Các control trong ASP.NET1.- Server control Một Form (còn gọi là Web Form) trong ASP.NET được xem như một vật chứa các server control và client script Trong ASP.NET, thay vì các mã lệnh ASP và mã lệnh giao diện (HTML) bị trộn lẫn trong 1 file, chúng được tách thành 2 file riêng biệt (.aspx.vb và .aspx) Các control khai báo bằng thẻ HTML trước đây (client-side) được khuyến cáo thay bằng các server control (server-side) * IV.- Các control trong ASP.NET1.- Server control (tt) Có hai loại server control: HTML server control (gọi là server control) ASP.NET server control (phần sau) Server control chính là các HTML control có thuộc tính runat=“server” * IV.- Các control trong ASP.NET1.- Server control (tt) Server control được phân thành 2 loại: Nhập liệu Chứa * IV.- Các control trong ASP.NET1.- Server control (tt) Ví dụ: trang đăng nhập Xây dựng trang đăng nhập như sau: Tạo mới 1 Web Form Đặt vào Web Form 1 table, 2 textbox và 2 button như hình sau Click phải vào các control và chọn Run As Server Control Table txtUser txtPass btnOK btnReset * IV.- Các control trong ASP.NET1.- Server control (tt) Ví dụ: trang đăng nhập Double click vào button btnOK và viết lệnh như sau: Protected Sub btnOK_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOK.ServerClick Dim ok As Boolean = True If (txtUser.Value = "") Then Response.Write("Bạn phải nhập trên truy cập") ok = False End If If (txtPass.Value = "") Then Response.Write("Bạn phải nhập mật khẩu") ok = False End If If (ok) Then Response.Write("Bạn đã đăng nhập với tên: " + txtUser.Value + ", mật khẩu: " + txtPass.Value) End If End Sub * IV.- Các control trong ASP.NET1.- Server control (tt) Ví dụ: trang đăng nhập Nhấn F5 để thực thi Form Sau khi nhập thông tin và nhấn Đăng nhập, trang web có dạng như sau: * IV.- Các control trong ASP.NET2.- ASP.NET Server control HTML Server Control là cách nhanh nhất giúp chuyển đổi các ứng dụng ASP cũ sang ASP.NET Tuy nhiên, HTML Server Control không cho phép cập nhật thuộc tính trực quan khi thiết kế Định dạng cho các HTML Server Control được thực hiện thông qua cú pháp CSS không tận dụng được tính hướng đối tượng * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) Được chia thành nhiều loại: Chuẩn: nhập liệu, chứa Danh sách (List): trình bày dữ liệu Phức tạp (Rich): trình bày dữ liệu phức tạp (calendar, TreeView, AdRotator, Table, MultiView) Kiểm tra (Validation): kiểm tra dữ liệu nhập trên các control khác Mobile: hỗ trợ thiết bị cầm tay User control, Custom control * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) Ví dụ: trang đăng ký Tạo mới trang signin.aspx theo hình sau txtUser txtPass calNgaySinh btnOK btnReset * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) Protected Sub btnOK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOK.Click Dim ok As Boolean = True Dim str As String = "" If (txtUser.Text = "") Then Response.Write("Bạn phải nhập trên truy cập") ok = False Else str = "Bạn đã đăng ký với tên: " + txtUser.Text End If If (txtPass.Text = "") Then Response.Write("Bạn phải nhập mật khẩu") ok = False Else str += ", mật khẩu: " + txtPass.Text End If str += ", ngày sinh: " + calNgaySinh.SelectedDate.ToShortDateString() If (ok) Then Response.Write(str) End If End Sub * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) Protected Sub btnReset_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReset.Click txtUser.Text = "" txtPass.Text = "" calNgaySinh.SelectedDate = Date.Now() End Sub * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) Nhấn F5 để thực thi trang web. Sau khi nhập thông tin và click Chấp nhận, kết quả như sau: * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt): Thuộc tính chung AccessKey BackColor BorderColor BorderWidth BorderStyle CssClass Enables EnableTheming Font ForeColor Height SkinID Style TabIndex ToolTip Width Các control trong ASP.NET đều có chung một số thuộc tính như sau: * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - Label Dùng trình bày chuỗi trên trình duyệt Tạo control label Chọn control Label trên ToolBox vẽ vào trang (Design), đặt thuộc tính name, Text Khi kết xuất ra trình duyệt phía client, Label sẽ được diễn dịch thành thẻ * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - TextBox Cho phép user nhập và submit dữ liệu Kéo control TextBox từ ToolBox vào trang và điều chỉnh các thuộc tính Thuộc tính TextMode: chỉ định kết xuất SingleLine: * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – TextBox (tt) MultiLine: Password: MaxLength: giới hạn số lượng ký tự được nhập vào (0=không giới hạn) ReadOnly: không cho chỉnh sửa dữ liệu trong TextBox Enabled: giống ReadOnly nhưng control không có Focus * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – TextBox (tt) Hầu hết các ASP.NET control đều có sự kiện riêng. Để chọn sự kiện cần chận và xử lý, mở cửa sổ code-behind của trang, chọn control phía bên trái, sự kiện phía bên phải * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - HiddenField Là control không hiển thị trong trình duyệt, cho phép lưu trữ dữ liệu (do trang web ấn định) và được truy xuất thông qua thuộc tính ID, Value Thường dùng để xác định nguồn gốc submit hay lưu trữ dữ liệu cần giấu user Trang ResultPresent.aspx dùng chung cho trình bày dữ liệu từ nhiều trang khác nhau. Mỗi trang submit đến trang này đều có 1 HiddenField xác định cho riêng nó. * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - Button Tạo các nút lệnh có chức năng Submit, Reset hay Button thường tùy thuộc vào thuộc tính UseSubmitBehavior Tạo trang web có nội dung như sau TextBox kết quả cóReadOnly=True Các Button cóUseSubmitBehavior=False * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – Button (tt) Double click vào Button + và viết lệnh cho sự kiện Click như sau: Protected Sub btnCong_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCong.Click Dim n1, n2, kq As Double n1 = Double.Parse(txtSo1.Text) n2 = Double.Parse(txtSo2.Text) kq = n1 + n2 txtKQ.Text = kq End Sub Các Button khác thực hiện tương tự * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - ImageButton Là một hình ảnh có chức năng tương tự như Button submit Hình ảnh cung cấp cho ImageButton được chỉ định trong thuộc tính ImageURL Các tập tin hình ảnh nên được Include vào project và lưu trữ trong cùng 1 thư mục (click phải tên project, chọn New Folder) Kết xuất trình duyệt: * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - LinkButton Hành xử như button submit nhưng biểu hiện dưới dạng một liên kết Kết xuất trình duyệt: Khi tạo ra một LinkButton, nó sẽ hành xử như một button thường Để có tính năng submit, chỉ định trang sẽ submit đến trong thuộc tính PostBackURL * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - HyperLink Cho phép khai báo địa chỉ Internet hay File và sẽ triệu gọi chúng khi user click * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - List Trình bày dữ liệu dạng danh sách phần tử DropDownList: chọn 1 trong danh sách ListBox: chọn 1 hoặc nhiều phần tử Single: chọn 1 Multiple: chọn nhiều * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – List (tt) Để thêm dữ liệu vào dạng control này, ta có thể làm theo 2 cách: Sử dụng thuộc tính Items trong sự kiện Page_Load. Đây là cách thêm động các mục chọn dữ liệu cho control Sử dụng thuộc tính Items trong cửa sổ Properties khi thiết kế trang. Đây là cách thêm tĩnh các mục chọn dữ liệu cho control * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – List (tt) Các control dạng List có một số thuộc tính cần quan tâm: SelectedItem: nhận về phần tử được chọn SelectedValue: nhận về giá trị khóa được chọn Sự kiện SelectedIndexChanged cho biết khi nào user click chọn phần tử mới (cần đặt thuộc tính AutoPostBack=True) * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – List (tt) Ví dụ: tạo 1 Web Form mới. Đặt vào form các control như sau. Đặt thuộc tính AutoPostBack=True cho 3 control dạng List Label DropDownList: cboNgay, cboNam ListBox: lstThang Label: lblKQ * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – List (tt) View / Component Designer. Trong cửa sổ Properties, chọn , rồi double click vào sự kiện Load để chận sự kiện Load của trang web * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – List (tt) Xây dựng 2 function như sau trong cửa sổ code-behind * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – List (tt) Double click vào từng control dạng List (cboNgay, lstThang, cboNam) và viết lệnh như sau: If CheckDate() Then lblKQ.Text = GetDate() Else lblKQ.Text = "Ngày sai" End If Nhấn F5 để thực thi trang web * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – CheckBox Là một control cung cấp khả năng chọn lựa giữa hai trạng thái: có/không, bật/tắt Thường dùng cung cấp một loạt các chọn lựa cho phép user chọn nhiều mục Kết xuất trình duyệt: * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) – CheckBox (tt) Thuộc tính Checked cho biết control hiện có đang được chọn hay không Sự kiện CheckedChanged cho biết khi nào user bật/tắt chọn lựa (AutoPostBack=True) Ví dụ: duyệt qua tất cả CheckBox trên Web Form để tìm các CheckBox được chọn Dim ctl As Control For Each ctl In form1.Controls If TypeOf (ctl) Is CheckBox Then Dim chk As CheckBox = ctl If (chk.Checked) Then ‘ Lệnh xử lý End If End If Next * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) –CheckBoxList Nếu muốn tạo ra nhiều chọn lựa bằng CheckBox, ta phải tạo mỗi chọn lựa là một CheckBox CheckBoxList là một control cho phép chọn nhiều mục chọn, với mỗi mục chọn là một CheckBox Hoạt động tương tự như ListBox có SelectionMode=Multiple * IV.- Các control trong ASP.NET2.- ASP.NET Server control (tt) - RadioButton Tương tự như CheckBox. Tuy nhiên, việc đánh dấu nhiều chọn lựa dạng RadioButton sẽ mang tính loại trừ Các RadioButton có thuộc tính GroupName mang cùng một giá trị sẽ thuộc cùng một nhóm và chọn lựa loại trừ lẫn nhau * IV.- Các control trong ASP.NET3.- ASP.NET Server control đặc biệt (tt) - RadioButtonList Thực chất, đây là một control dạng danh sách gói gọn nhiều RadioButton vào một control duy nhất Cách thức hoạt động và sử dụng control này hoàn toàn tương tự như ListBox có thuộc tính SelectionMode=Single * IV.- Các control trong ASP.NET3.- ASP.NET Server control đặc biệt (tt) - FileUpload Cho phép user chọn file trên client và tải lên server Kết xuất trình duyệt: HasFile: thuộc tính cho biết control FileUpload có chứa tập tin upload hay không * IV.- Các control trong ASP.NET3.- ASP.NET Server control đặc biệt (tt)– FileUpload (tt) FileName: thuộc tính cho biết tên tập tin sẽ được upload PostedFile: sử dụng thuộc tính ContentLength của đối tượng này để kiểm tra kích thước tính bằng byte của file được upload SaveAs: phương thức dùng upload thực sự và lưu file vào thư mục xác định trên server * IV.- Các control trong ASP.NET3.- ASP.NET Server control đặc biệt (tt)– FileUpload (tt) Tạo Web Form mới đặt tên FileUploadForm gồm các control như sau Double click vào button Upload và viết lệnh như sau: Dim file As HttpPostedFile = FileUpload1.PostedFile If (file.ContentLength Một hệ thống trình đơn có thể được trình bày theo chiều ngang hoặc dọc, quy định trong thuộc tính Orientation Hoạt động tựa như một cây phân cấp Các menuitem con được quản lý thông qua thuộc tính Items * IV.- Các control trong ASP.NET3.- ASP.NET Server control đặc biệt (tt)– Menu (tt) Tạo mới Web Form Menu.aspx, bổ sung control Menu vào trang Click vào button … trong thuộc tính Items và thiết kế menu như hình sau F5 thực thi Thêm nút gốc Thêm nút con của nút hiện hành Liên kết đến trang sẽ hiển thị * IV.- Các control trong ASP.NET3.- ASP.NET Server control đặc biệt (tt) - BulletedList Trình bày thông tin theo dạng danh sách bulleted Item 1 … Item n * IV.- Các control trong ASP.NET3.- ASP.NET Server control đặc biệt (tt)– BulletedList (tt) Thuộc tính DisplayMode cho phép chuyển đổi dạng trình bày của các ListItem theo: Text, HyperLink, LinkButton Nếu trình bày theo dạng HyperLink, ta nên điều chỉnh các thuộc tính như sau: Home Tất cả sản phẩm * IV.- Các control trong ASP.NET 4.- Các server control mẫu Login ChangePassword PasswordRecovery Học viên làm bài thu hoạch về các chức năng, thuộc tính, sự kiện, phương thức và cách thức sử dụng 2 control ChangePassword và PasswordRecovery * IV.- Các control trong ASP.NET 4.- Các server control mẫu - Login Là một Custom control được cung cấp sẵn Khi thêm vào trang, control Login có dạng * IV.- Các control trong ASP.NET 4.- Các server control mẫu – Login (tt) Thuộc tính: Thay đổi giao diện cho nút login: LoginButtonText, LoginButtonType, LoginButtonImageUrl và LoginButtonStyle Tiêu đề: TitleText, InstructionText UserName: UserNameLabelText, UserNameRequiredErrorMessage Password: PasswordLabelText, PasswordRequiredErrorMessage * IV.- Các control trong ASP.NET 4.- Các server control mẫu – Login (tt) Thuộc tính: Tạo mới user: CreateUserIconUrl, CreateUserText, CreateUserUrl Quên mật khẩu: PasswordRecoveryIconUrl, PasswordRecoveryText, PasswordRecoveryUrl TextLayout: chỉ định vị trí của Label và TextBox Orientation: hướng đặt các control FailureText: chuỗi thông báo login không thành công * Các control trong ASP.NET Server control mẫu - Login Sự kiện: Authenticate: user click nút Login Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate Select Case Login1.UserName Case "admin" If (Login1.Password = "admin") Then e.Authenticated = True End If Case "user" If (Login1.Password = "user") Then e.Authenticated = True End If End Select End Sub Load: khi control được nạp vào trang * IV.- Các control trong ASP.NET 4.- Các server control mẫu – Login (tt) Tạo mới Web Form tên LoginCtl.aspx Bổ sung control Login Điều chỉnh Auto Format theo ý thích InstructionText=Đăng nhập hệ thống FailureText=Thông tin đăng nhập sai LoginButtonText=Đăng nhập UserNameLabelText=Tên người dùng UserNameRequiredErrorMessage=Phải nhập tên người dùng PasswordLabelText=Mật khẩu PasswordRequiredErrorMessage=Phải nhập mật khẩu PasswordRecoveryText=“Quên mật khẩu” PasswordRecoveryUrl=“ForgotPwd.aspx” CreateUserText=“Đăng ký” CreateUserUrl=“SignIn.aspx” DestinationPageUrl=“Default.aspx” DisplayRememberMe=False * IV.- Các control trong ASP.NET 4.- Các server control mẫu – Login (tt) Viết lệnh cho sự kiện Authenticate như slide 98 Trang web thực thi như sau * IV.- Các control trong ASP.NET 5.- Các server control kiểm tra RequiredFieldValidator CompareValidator RangeValidator Học viên làm bài thu hoạch về các chức năng, thuộc tính, sự kiện, phương thức và cách thức sử dụng 2 control CompareValidator và RangeValidator * IV.- Các control trong ASP.NET 5.- Các server control kiểm tra - RequiredFieldValidator Dùng liên kết với 1 control bắt buộc user phải nhập dữ liệu vào Thuộc tính: ErrorMessage: chuỗi hiển thị khi user không nhập dữ liệu ControlToValidate: chỉ định control sẽ được kiểm tra dữ liệu nhập Text: tương tự ErrorMessage như có định dạng màu, font EnableClientScript: cho phép xuất hiện cửa sổ thông báo * IV.- Các control trong ASP.NET 5.- Các server control kiểm tra – RequiredFieldValidator (tt) Tạo trang SignIn như sau Bổ sung 3 RequiredFieldValidator tương ứng với 3 TextBoxtên người dùng, mật khẩu và gõ lại mật khẩu * IV.- Các control trong ASP.NET 5.- Các server control kiểm tra – RequiredFieldValidator (tt) * Các control trong ASP.NET Bài tập Xây dựng hệ thống trình đơn như sau trong trang default.aspx Trang chủ Default.aspx Control đặc biệt FileUpload.aspx Mẫu và kiểm tra Login.aspx Mẫu Login.aspx Kiểm tra Required.aspx * NỘI DUNG (tt) Web tĩnh và động Giới thiệu về ASP.NET IIS (Internet Information Services) Các control trong ASP.NET Các đối tượng trong ASP.NET ASP.NET & ADO.NET Xây dựng ứng dụng bán sách qua mạng * V.- CÁC ĐỐI TƯỢNG TRONG ASP.NET Response Request Server Application Session HttpCookie * V.- Các đối tượng trong ASP.NET1.-Response Dùng chuyển giao dữ liệu từ server về client thông qua giao thức HTTP Thuộc lớp HttpResponse, bao gồm nhiều thuộc tính và phương thức Trong trang ASP.NET, Response được xem như là một thuộc tính của trang * V.- Các đối tượng trong ASP.NET1.-Response– Phương thức Redirect(URL): chuyển tiếp từ trang hiện hành sang trang có địa chỉ URL Response.Redirect(“~/login.aspx”) Write(chuỗi): ghi chuỗi ra luồng kết xuất HTTP. Chuỗi sẽ xuất hiện trong trang phản hồi về client Response.Write(“Hello ASP.NET”) * V.- Các đối tượng trong ASP.NET1.-Response– Phương thức (tt) Flush: chuyển giao về client ngay lập tức các dữ liệu trong bộ nhớ đệm End: giống Flush nhưng sẽ ngưng thi hành tất cả công việc còn lại Response.Write(“Dòng 1”) Response.End() Response.Write(“Dòng 2”) Khi kết xuất về client, trang web chỉ xuất hiện dòng chữ Dòng 1 * V.- Các đối tượng trong ASP.NET1.-Response– Phương thức (tt) SetCookie(HttpCookie): cập nhật đối tượng Cookie đang tồn tại trong tập đối tượng HttpCookie AppendCookie(HttpCookie): bổ sung đối tượng Cookie vào tập đối tượng HttpCookie * V.- Các đối tượng trong ASP.NET1.-Response– Thuộc tính ContentType: chỉ định kiểu dữ liệu trả về cho client Response.ContentType = “image/jpeg” Charset: thiết lập hoặc lấy về thông tin về bộ mã ký tự trong trang web Response.ContentType = “text/html” Response.Charset = “utf-8” * V.- Các đối tượng trong ASP.NET 2.- Request Cho phép lấy dữ liệu từ client về server khi client submit bằng phương thức post/get Post / Get ? Đối tượng này có 4 thuộc tính là 4 đối tượng collection chính: Form (POST) QueryString (GET) Cookies ServerVariables * V.- Các đối tượng trong ASP.NET 2.- Request - Form Thuộc tính AllKeys: chứa tất cả các khóa dữ liệu được submit lên server For each key in Request.Form.AllKeys Thực hiện xử lý key Next Phương thức GetKey(i): lấy về khóa dữ liệu thứ i For i=0 to Resquest.Form.Count - 1 Key = Request.Form.GetKey(i) Next * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) GetKey(Name): lấy về khóa dữ liệu có tên là Name strPassword = Request.Form.Get(“txtPwd”) strPassword = Request(“txtPwd”) Tuy nhiên, trong ứng dụng, nếu ta sử dụng chủ yếu là các control của ASP.NET thì: Ít sử dụng đến phương thức Get Nên sử dụng . Chỉ sử dụng Request.Form nếu ta chỉ định trang hiện hành sẽ submit đến 1 trang khác * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) Xây dựng trang web có giao diện như sau txtUser txtPwd txtRetypePwd cboDay, cboMonth, cboYear chkEmail txtNote btnOK * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) Hai TextBox txtPwd và txtRetypePwd có TextMode = Password txtNote có TextMode = MultiLine Chận sự kiện Page_Load để viết lệnh điền dữ liệu vào 3 DropDownList ngày, tháng, năm như ví dụ trong slide 78 Xây dựng 2 phương thức GetDate và CheckDate như trong slide 79 * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) Chận sự kiện click của btnOK: * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) Chận sự kiện click của btnOK: (tt) * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) Ví dụ trên sử dụng cơ chế submit trên cùng 1 trang Nếu ta muốn submit dữ liệu signin sang 1 trang khác thì lúc này ta sẽ sử dụng Request.Form Để minh họa điều này, ta chỉnh sửa thuộc tính PostBackURL của btnOK trong trang signin.aspx thành “~/createuser.aspx” Trang createuser.aspx được tạo mới và chận bắt duy nhất 1 sự kiện PageLoad như sau: * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) Sự kiện Page_Load của createuser.aspx * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) Sự kiện Page_Load của createuser.aspx (tt) * V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt) Sự kiện Page_Load của createuser.aspx (tt) * V.- Các đối tượng trong ASP.NET 2.- Request - ServerVariable Cung cấp danh sách các tham số và các thiết lập của web server cũng như của website Tương tự như Form, ServerVariable cũng cung cấp các thuộc tính và phương thức như: AllKeys, Count, GetKey và Get Thông tin chi tiết có thể tìm trong MSDN * V.- Các đối tượng trong ASP.NET 2.- Request – Cookies Cung cấp nhiều thuộc tính và phương thức cho phép lấy các cặp (tên cookie, giá trị) từ client Tương tự 3 đối tượng trước đó, Cookies cũng cung cấp các thuộc tính và phương thức như: AllKeys, Count, GetKey và Get Tuy nhiên, việc truy xuất Cookie thường được thực hiện theo cách đơn lẻ, cụ thể và ngắn gọn như sau: * V.- Các đối tượng trong ASP.NET 2.- Request – Cookies (tt) Truy xuất đến 1 cookie cụ thể: HttpCookie cookieUser = Request.Cookies(“UserName”) If (cookieUser nothing) Dim strVal as String = Convert.ToString(cookie.Value) ‘Xử lý với value End If * V.- Các đối tượng trong ASP.NET 3.- Server Đối tượng Server thuộc lớp HttpServerUtility cung cấp nhiều thuộc tính và phương thức phục vụ cho nhiều mục tiêu khác nhau Thuộc tính MachineName cho biết tên web server Thuộc tính ScriptTimeout dùng để gán hay lấy thời gian tối đa cho phép thực thi phần xử lý kết quả trả về client trên server * V.- Các đối tượng trong ASP.NET 3.- Server – Phương thức MapPath(path): trả về đường dẫn tuyệt đối trên web server ứng với đường dẫn tương đối path WebSitePath = Server.MapPath(“.”) dbPath = WebSitePath & “\data\qlbh.mdb” Execute(page): cho phép gọi thi hành các lệnh khai báo trong trang page. Sau đó, trả quyền điều khiển về lệnh kế tiếp trong trang hiện hành Server.Execute(“doSomething.aspx”) * V.- Các đối tượng trong ASP.NET 3.- Server – Phương thức (tt) Transfer(page): cho phép chuyển xử lý sang các lệnh khai báo trong trang page và không trở về trang hiện hành HtmlEncode: mã hóa một chuỗi định dạng HTML và trình bày trên trình duyệt Thường dùng để trình bày các dữ liệu có dạng là ngôn ngữ HTML * V.- Các đối tượng trong ASP.NET 4.- Application Cho phép lưu và truy cập thông tin trong phạm vi toàn ứng dụng Những thông tin này (biến) sẽ bị mất đi khi ứng dụng khởi động lại Khi làm việc với Application, cần kết hợp với các khai báo trong Global.asax Cú pháp: Application(“name”) = value value = Application(“name”) * V.- Các đối tượng trong ASP.NET 4.- Application – Phương thức Đối tượng Application cũng cung cấp các thuộc tính và phương thức: AllKeys, Keys, Count, Get được sử dụng tương tự như các đối tượng khác Lock / Unlock: do các biến Application có thể được truy cập đồng thời từ nhiều trang, nên ta có thể khóa/mở khóa ghi dữ liệu bằng phương thức Lock/Unlock * V.- Các đối tượng trong ASP.NET 4.- Application – Session Đối tượng Session gắn liền với khái niệm phiên làm việc Phiên làm việc của 1 user bắt đầu từ yêu cầu đầu tiên của user này cho đến khi hết thời gian quy định hoặc khi user đóng trang web cuối cùng trong các trang yêu cầu từ website Dùng để lưu và truy xuất các biến trong phạm vi 1 phiên làm việc Thường dùng để lưu trữ và xác định các thông tin cá nhân của từng user * V.- Các đối tượng trong ASP.NET 4.- Application – Session (tt) Ngoài các thuộc tính và phương thức tương tự với đối tượng Application, đối tượng Session cung cấp một số thuộc tính và phương thức khác như sau: Thuộc tính IsNewSession: cho biết yêu cầu trang hiện hành có phải thuộc 1 phiên làm việc mới hay không * V.- Các đối tượng trong ASP.NET 4.- Application – Session (tt) Ph/thức Add: cho phép thêm biến cùng với giá trị của nó ứng với phiên làm việc hiện hành Session.Add(“UserID”, txtUser.Text) Ph/thức Abandon/RemoveAll: hủy tất cả các biến trong phiên làm việc hiện hành Ph/thức Remove(“name”)/RemoveAt(i): xóa biến có tên name hoặc tại vị trí i trong phiên làm việc hiện hành Đối tượng Session có thể lưu trữ các biến dạng ArrayList, DataTable, DataRow, Array, … * V.- Các đối tượng trong ASP.NET 4.- Application – HttpCookie Khác với Session hoạt động trên server, HttpCookie cho phép lưu trữ và truy xuất các thông tin trên client Cookie là tập thông tin được lưu trữ trên máy tính của user khi họ truy cập đến website Có 2 loại cookie: Temporary: thông tin mất đi khi user rời website Persistent: thôgn tin lưu trữ bền vững trên máy tính của user, server có thể đọc lại những thông tin này vào lần truy cập website kế tiếp của user * V.- Các đối tượng trong ASP.NET 4.- Application – HttpCookie (tt) Để đọc/ghi thông tin vào Cookie, ta sử dụng đối tượng HttpCookie, cho phép lấy hoặc gán giá trị thuộc tính của Cookie Khai báo một cookie dạng đơn cookie = new HttpCookie(name, value) Khai báo một cookie dạng phức lưu trữ nhiều cặp khóa và giá trị: cookie = new HttpCookie(name) Cookie.Values.Add(name1, value1) Cookie.Values.Add(name2, value2) * V.- Các đối tượng trong ASP.NET 4.- Application – HttpCookie (tt) Để ghi cookie xuống máy tính client, sử dụng ph/thức Add của thuộc tính Cookies trong đối tượng Response Response.Cookies.Add(cookie) Để đọc cookie từ máy tính client, sử dụng thuộc tính Cookies trong đối tượng Request cookie = Request.Cookies(“name”) val = cookie.Values(“name”) val1 = cookie.Values(“name1”) * Các đối tượng trong ASP.NETBài tập Trình bày chức năng, cách thức sử dụng các thuộc tính/phương thức của các đối tượng sau: Response: Redirect, Write, Set/Add cookie Request: QueryString, Form, Cookie Application/Session: thêm/xóa/sửa biến HttpCookies Từ website slide 105, bổ sung các yêu cầu: User chỉ được truy cập trang FileUpload nếu đã đăng nhập website Điều chỉnh trang login.aspx cho phép ghi nhớ user. Trình bày chi tiết các bước thực hiện bài tập 2. * Các đối tượng trong ASP.NETBài tập * NỘI DUNG (tt) Web tĩnh và động Giới thiệu về ASP.NET IIS (Internet Information Services) Các control trong ASP.NET Các đối tượng trong ASP.NET ASP.NET & ADO.NET Xây dựng ứng dụng bán sách qua mạng * VI.- ASP.NET & ADO.NET Các công nghệ truy xuất dữ liệu Các đối tượng của ADO.NET Các đối tượng lưu trữ và xử lý dữ liệu SqlDataSource & AccessDataSource Các control trình bày dữ liệu GridView DetailsView & FormView DataList & Repeater User control & MasterPage * VI.- ASP.NET & ADO.NET1.-Các công nghệ truy xuất dữ liệu * VI.- ASP.NET & ADO.NET1.-Các công nghệ truy xuất dữ liệu (tt) * VI.- ASP.NET & ADO.NET1.-Các công nghệ truy xuất dữ liệu (tt) * VI.- ASP.NET & ADO.NET1.-Các công nghệ truy xuất dữ liệu (tt) Active Data Object .NET ADO.NET có thể kết nối và thao tác trên các hệ quản trị CSDL như SQL server, MySQL, MS Access, Oracle, . . . Tối ưu cho các ứng dụng Internet và phân tán ADO.NET được thiết kế nhằm tăng tốc độ truy cập và thao tác dữ liệu trong môi trường đa lớp. Hai thành phần chính của ADO.NET là: Thành phần kết nối (.NET Framework Data Providers) Thành phần lưu trữ và xử lý * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET .NET Framework Data Providers Connection Command DataReader DataAdapter Container – DataSet DataTable = {DataRow, DataColumn, Constraint} DataView DataRelation * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) ADO.NET chỉ cung cấp một đặc tả giao tiếp cho các đối tượng như Connection, Command, DataReader, DataAdapter Các hệ quản trị CSDL sẽ được xây dựng riêng các trình điều khiển gọi là Provider * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) Imports System.Data.SqlClient Imports System.Data.OleDb Imports System.Data * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) - Connection * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Connection (tt) ConnectionString: chuỗi chỉ định kết nối Mỗi Provider có riêng một định dạng chuỗi kết nối SQLConnection: “DataSource=(local);Initial Catalog=qlsv;user=sa;pwd=sa” OleDBConnection: “Provider=SQLOLEDB;Data Source=(local);Initial Catalog=qlsv;Integrated Security=False;User ID=sa;Password=sa” “Provider=SQLOLEDB;Data Source=(local);Initial Catalog=qlsv;Integrated Security=True;User ID=sa;Password=sa” “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\qlsv.mdb;User ID=Admin;Password=” * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Connection (tt) Kết nối CSDL với SQLConnection Dim connStr as String = “server=(local);Init Catalog=qlsv;Integrated Security=False;User ID=sa;pwd=sa;” Dim dbConn As New System.Data.SqlClient.SqlConnection(connStr) Kết nối CSDL với OleDbConnection Dim connStr as String = “Provider=SQLOLEDB;Data Source=(local);Init Catalog=qlsv;User ID=sa;pwd=sa;” Dim dbConn As New System.Data.OleDb.OleDbConnection(connStr) Thực hiện kết nối dbConn.Open() ‘ Mở kết nối ‘… Các lệnh truy xuất và xử lý CSDL dbConn.Close() ‘ Đóng kết nối * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command Đối tượng Command cho phép thi hành các câu lệnh truy vấn SQL, gọi thủ tục nội của SQL Server, . . . * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command (tt) * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command (tt) Truy xuất dữ liệu Dim sql As String = “SELECT * FROM SINHVIEN” Dim sql As String = “vMonHoc” Dim sql As String = “sp_KetQuaSV” Dim sql As String = “INSERT INTO KETQUA VALUES(‘A01’,’K1’,9)” Truy xuất CSDL với SqlCommand Dim dbCmd As New SqlCommand(sql, dbConn) Truy xuất CSDL với OleDbCommand Dim dbCmd As New OleDbCommand(sql, dbConn) Thực hiện dbCmd.CommandType = CommandType.XXX dbCmd.ExecuteReader() / ExecuteNoneQuery() * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command (tt) Thực hiện và nhận kết quả vô hướng Gọi Stored Procedure - OleDbCommand Dim dbCmd As New OleDbCommand(“select count(*) from MonHoc”, dbConn) dbCmd.CommandType = CommandType.Text Dim SLMonHoc As Integer = dbCmd.ExecuteScalar() Gọi Stored Procedure – SqlCommand Dim dbCmd As New SqlCommand(“select count(*) from MonHoc”, dbConn) dbCmd.CommandType = CommandType.Text Dim SLMonHoc As Integer = dbCmd.ExecuteScalar() * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command (tt) Parameter dùng để truyền tham số cho chuỗi lệnh Sql trong thuộc tính CommandText có sử dụng dấu ? thay thế cho các giá trị chưa xác định, hay thủ tục nội của Sql có thể cần phải truyền các tham số đầu vào/ đầu ra. Cơ chế Parameter giúp cho việc truyền tải thông tin giữa ứng dụng và server mang tính bảo mật và an toàn hơn cách thức nối chuỗi SQL thông thường * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command (tt) * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command (tt) Để đưa tham số cho Command, chúng ta có thể sửa dụng một trong các cách sau: Dùng phương thức CreateParameter của Command và Add của tập hợp Parameters Đưa tham số vào tập hợp Parameters Tạo tham số và đưa vào tập hợp Parameters * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command (tt) Stored Procedure có tham số Create Procedure sp_KetQuaSV @masv as nvarchar(10) As Begin Select MaSV, HoSV, TenSV, TenMH, Diem From SinhVien sv, KetQua kq, KhoaHoc k, MonHoc mh Where sv.MaSV=@masv AND sv.MaSV=kq.MaSV AND kq.MaKH=k.MaKH AND k.MaMH=mh.MaMH End * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – Command (tt) Gọi Stored Procedure - OleDbCommand Dim dbCmd As New OleDbCommand(“sp_KetQuaSV”, dbConn) dbCmd.CommandType = CommandType.StoredProcedure dbCmd.Parameters.Add("@masv", OleDbType.VarWChar).Value = "A01" dbCmd.ExecuteNonQuery() Gọi Stored Procedure – SqlCommand Dim dbCmd As New SqlCommand(“sp_KetQuaSV”, dbConn) dbCmd.CommandType = CommandType.StoredProcedure dbCmd.Parameters.Add("@masv", SqlType.NVarChar).Value = "A01" dbCmd.ExecuteNonQuery() * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter Dùng luân chuyển và trao đổi dữ liệu, xử lý logic một cách hiệu quả giữa ứng dụng và CSDL Mỗi đối tượng Command là một lệnh tách rời. DataAdapter cung cấp cùng lúc 4 đối tượng Command: Select, Insert, Update, Delete. DataAdapter không lưu trữ dữ liệu mà chỉ đóng vai trò cầu nối giữa Connection và DataTable (DataSet). * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt) Khai báo sử dụng: Dim adap As New SqlDataAdapter(dbCmd) Dim adap As New OleDbDataAdapter(dbCmd) Lưu ý: dbCmd là đối tượng SqlCommand hoặc OleDbCommand tương ứng, đã được tạo ra với SqlConnection hoặc OleDbConnection tương ứng và Connection này phải đã được mở (Open). * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt) Fill – Đọc và lưu trữ dữ liệu DataAdapter cung cấp 4 đối tuợng Command trong đó phương thức Fill tương ứng với việc gọi SELECT Command Lệnh khai báo đối tượng ở slide trước chỉ nên dùng cho các đối tượng Command thực hiện lệnh SELECT Khi tạo DataAdapter có sử dụng cả 4 Command, chúng ta nên tạo riêng từng Command này. * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt) SELECT Command (đổi Sql thành OleDb để sử dụng OLEDB) Dim adap As New SqlDataAdapter adap.SelectCommand = New SqlCommand(“SELECT * FROM MonHoc”, dbConn) Dim tbl As New DataTable adap.Fill(tbl) ‘ Các lệnh xử lý khác * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt) Update – Cập nhật dữ liệu Phương thức Update hoạt động dựa trên 3 Command còn lại (Insert, Update, Delete) Khi trình bày dữ liệu trên Form thông qua các control, phương thức Update sẽ tự động cập nhật tất cả thay đổi lên CSDL thông qua 3 Command này Trước khi sử dụng, phải xây dựng tường minh 3 Command này * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt) Đổi Sql thành OleDb để sử dụng OLEDB INSERT Command … adap.InsertCommand = New SqlCommand(“INSERT INTO MonHoc VALUES (@mamh, @tenmh, @sotc)”, dbConn) adap.InsertCommand.Parameters.Add(“@mamh”).SourceColumn=“MaMH” adap.InsertCommand.Parameters.Add(“@tenmh”).SourceColumn=“TenMH” adap.InsertCommand.Parameters.Add(“@sotc”).SourceColumn=“SoTC” * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt) Đổi Sql thành OleDb để sử dụng OLEDB (tt) UPDATE Command … adap.UpdateCommand = New SqlCommand(“UPDATE MonHoc SET TenMH=@tenmh, SoTC=@sotc WHERE MaMH=@mamh”, dbConn) adap.UpdateCommand.Parameters.Add(“@mamh”).SourceColumn=“MaMH” adap.UpdateCommand.Parameters.Add(“@tenmh”).SourceColumn=“TenMH” adap.UpdateCommand.Parameters.Add(“@sotc”).SourceColumn=“SoTC” * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt) Đổi Sql thành OleDb để sử dụng OLEDB (tt) DELETE Command … adap.DeleteCommand = New SqlCommand(“DELETE MonHoc WHERE MaMH=@mamh”, dbConn) adap.DeleteCommand.Parameters.Add(“@mamh”).SourceColumn=“MaMH” Sau khi xây dựng đủ 4 Command, sử dụng Fill để thực hiện SELECT Command lấy dữ liệu, sử dụng Update để cập nhật dữ liệu Dim tbl As New DataTable adap.Fill(tbl) ‘ Các lệnh thao tác khác adap.Update(tbl) * VI.- ASP.NET & ADO.NET2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt) Sử dụng đối tượng SqlCommandBuilder / OleDBCommandBuilder để xây dựng tự động 3 Command còn lại dựa vào SELECT Command được cung cấp ban đầu Dim adap As New SqlDataAdapter(“select * from SinhVien”, dbConn) Dim cmdBuilder = New OleDbCommandBuilder(adap) Dim tbl As New DataTable adap.Fill(tbl) ... * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu DataTable DataSet * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu - DataTable Dùng lưu trữ và xử lý dữ liệu được lấy từ CSDL thông qua đối tượng DataAdapter DataTable có khả năng tạo bảng mới với cấu trúc bảng được tạo thông qua các đối tượng DataColumn; thêm dữ liệu mới và cập nhật dữ liệu đã có bằng DataRow Trong môn học này, DataTable chủ yếu được dùng để lưu trữ dữ liệu phục vụ cho việc trình bày dữ liệu trên Form Khai báo sử dụng Name space: Imports System.Data * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu – DataTable (tt) * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu – DataTable (tt) * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu - DataSet ADO.NET hoạt động theo cơ chế Disconnected Tạo kết nối CSDL khi cần Ngắt kết nối khi thực hiện xong thao tác Ưu điểm Không chiếm giữ nhiều tài nguyên Phục vụ được nhiều ứng dụng Khuyết điểm Những thay đổi trên CSDL diễn ra tại một nơi khác sẽ không được cập nhật ngay cho người dùng * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu – DataSet (tt) DataSet có thể được xem như một CSDL thu nhỏ, do nó có thể bao gồm nhiều: DataTable (các table, view trong CSDL) DataView DataRelation Stored Procedure Khai báo sử dụng NameSpace: Imports System.Data * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu – DataSet (tt) DataSet DataTable Columns Rows DataColumn DataRow Tables Relations DataRelation * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu – DataSet (tt) * VI.- ASP.NET & ADO.NET3.- Lưu trữ và xử lý dữ liệu – DataSet (tt) Sử dụng các phương thức Add, Remove của hai đối tượng thuộc tính Relations và Tables để thêm, xóa DataTable hay DataRelation vào DataSet Khi sử dụng phương thức Fill của DataAdapter cho DataSet thì DataSet sẽ có số lượng DataTable tương ứng với số lượng câu truy vấn trong đối tượng SELECT Command của DataAdapter * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource Các đối tượng kết nối CSDL trên đây giúp ta thực hiện tổ chức kết nối, truy vấn dữ liệu cho trang web thông qua mã lệnh ASP.NET sử dụng thêm một loại kết nối CSDL khác gói gọn các đối tượng Connection, DataAdapter, DataSet thành một đối tượng SqlSataSource: dùng truy xuất CSDL SQL Server AccessDataSource: dùng truy xuất CSDL Access ObjectDataSource: XMLDataSource * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Giúp tạo ra các kết nối CSDL một cách trực quan Giúp xây dựng trang web hỗ trợ CSDL một cách nhanh chóng, hầu như không cần viết thêm mã lệnh Kết hợp chặt chẽ với các control trình bày dữ liệu trên trang web Cách thức sử dụng giữa các DataSource là hoàn toàn thống nhất Cung cấp Wizard giúp cấu hình chuỗi kết nối, chọn đối tượng dữ liệu, lọc dữ liệu từ các loại tham số khác nhau: Session, Request.QueryString, Request.Form, Value, WebControl, ... * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Khi chọn thêm control SqlDataSource vào trang web , click vào hình mũi tên ở phía trên của control và chọn Configure Data Source Nếu sử dụng lại kết nối dữ liệu trước đây, chọn từ danh sách ComboBox. Nếu tạo mới kết nối CSDL, chọn New Connection * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Chọn New Connection, hộp thoại sau xuất hiện Chọn CSDL cần kết nối Đối với CSDL SQL Server có thể chọn loại kết nối là OLEDB hoặc SQL Chọn Continue để tiếp tục * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Điền đầy đủ thôngtin về server name,user, password,CSDL Chọn OK để tiếp tục Hộp thoại tạoSqlDataSource xuất hiện lại * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Nhấn Next sẽ xuất hiện hộp thoại đặt tên và chọn lưu trữ cho chuỗi kết nối vừa tạo Nhấn Next tiếp tục để mở hộp thoại xây dựng câu lệnh SQL truy vấn dữ liệu Nếu chọn lấy dữ liệu từ Table or View thì chỉ được lấy dữ liệu từ 1 table hoặc view nhưng cho phép ta thêm, xóa, sửa dữ liệu * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Chọn Query Builder để tạo truy vấn như slide sau * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Nhấn Next, Finish để hoàn tất quá trình tạo mới SqlDataSource Quay trở lại bước xây dựng câu lệnh SQL truy vấn dữ liệu (slide 176), bây giờ ta chọn lấy dữ liệu từ Table hay View. Chọn table là HangHoa và lấy tất cả các field trong table này Mặc định, SqlDataSource chỉ sinh mã cho SELECT, nếu muốn tự phát sinh lệnh INSERT, UPDATE, DELETE ta chọn Advanced và click chọn CheckBox tương ứng Ta có thể click chọn WHERE để xây dựng phần lọc dữ liệu như slide sau * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Sau khi chỉ định WHERE, nhấn OK để quay trở lại Nhấn Next, Finish để hoàn tất * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Sau khi đã tạo xong SqlDataSource, ta có thể bổ sung thêm các control để trình bày dữ liệu Nếu muốn chỉnh sửa các thông tin kết nối và truy vấn dữ liệu, chọn Configure Data Source Nếu cấu trúc dữ liệu có thay đổi, chọn Refresh Schema * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Bổ sung control GridView vào trang web Chọn Data Source là SqlDataSource1 vừa tạo Click chọn các CheckBox như slide sau * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) Chọn Edit Columns để điều chỉnh thông tin Header cho các field như sau * VI.- ASP.NET & ADO.NET4.- SqlDataSource & AccessDataSource (tt) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu GridView DetailsView & FormView DataList User control MasterPage * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - GridView Tương ứng với DataGrid trong ứng dụng Windows Forms Là control thông dụng nhất trong ứng dụng Web Trình bày dữ liệu theo dạng phân chia thành từng dòng, cột tương tự table Cho phép chọn record cần xử lý, sắp xếp, cập nhật, phân trang * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Cho phép định dạng khung lưới theo nhiều dạng khác nhau nhằm giúp việc quan sát dữ liệu dễ dàng hơn Click chọn nút mũi tên phía trên bên phải (SmartTag) của GridView và chọn Auto Format * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Phân trang: AllowPaging = True PagerSettings Mode: PageButtonCount: chỉ định số lượng liên kết trang, nếu tổng số trang vượt quá số lượng này, link ... sẽ xuất hiện Position: * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Định dạng hiển thị cho các dòng (row) trong GridView Chỉ định chức năng hoạt động trên dữ liệu * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Các cột trong GridView có thể tùy biến thành các dạng BoundField (mặc định) CheckBoxField HyperLinkField ButtonField ImageField Click chọn SmartTag / Edit Columns Xóa field tự động phát sinh muốn tùy biến (Selected fields) Chọn loại field và chỉnh sửa các thuộc tính tương ứng * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Xóa MaHH trong Selected fields Add HyperLinkField Sửa HeaderText thành Mã hàng Sửa NavigateUrl, DataTextField, DataNavigateUrlFields và DataNavigateUrlFormatString như hình bên * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Sự kiện: PageIndexChanging Sorting SelectedIndexChanged: thường dùng để chuyển hướng đến trang web khác xử lý việc chọn 1 record Response.Navigate(“~/ProductDetail.aspx?ProductID=“+ GridView1.Rows(GridView1.SelectedIndex).Cells(2).Text RowDeleting RowDataBound: xảy ra mỗi khi 1 record được điền vào GridView * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField: Thông thường, GridView trình bày dữ liệu trong chế độ ReadOnly bằng các Label control trong mỗi cell Tuy nhiên, ta có thể thay Label control bằng các loại control khác như: TextBox, DropDownList, ListBox, LinkButton, Image, ... thông qua TemplateField * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField – TextBox Trong hộp thoại Edit Columns, chọn cột muốn chuyển dạng trình bày thành TextBox, rồi chọn Convert this field into a TemplateField. Ví dụ, ta chọn cột DonGia Chuyển sang cửa sổ mã lệnh khai báo giao diện, ta tìm thấy thẻ khai báo cột DonGia chuyển thành như sau: * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) '> '> * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Với mỗi cột có định dạng TemplateField, GridView sẽ tạo ra 2 control tương ứng với 2 chế độ ReadOnly (ItemTemplate) và Edit (EditItemTemplate) Bây giờ, nếu muốn TextBox sẽ hiển thị trong chế độ ReadOnly, ta chuyển khai báo Label thành TextBox * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) '> '> * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField – DropDownList Trong hộp thoại Edit Columns, chọn cột muốn chuyển dạng trình bày thành TextBox, rồi chọn Convert this field into a TemplateField. Ví dụ, ta chọn cột MaLoai Chuyển sang cửa sổ mã lệnh khai báo giao diện, ta tìm thấy thẻ khai báo cột MaLoai chuyển thành như sau: * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) '> '> * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField – DropDownList: Tương tự như TextBox TemplateField, GridView cũng phát sinh 2 khai báo cho 2 chế độ. Trước khi chuyển sang sử dụng DropDownList cho GridView, ta cần chuẩn bị trước nguồn dữ liệu cho DropDownList này Bổ sung SqlDataSource vào trang và chỉ định lấy dữ liệu từ table LoaiHH * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField – DropDownList: Chọn Edit Template trong SmartTag, cửa sổ chỉnh sửa template sau xuất hiện Xóa TextBox và bổ sung DropDownList vào ItemTemplate Click SmartTag của DropDownList và chọn Choose Data Source rồi chỉnh sửa như sau: * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Nguồn dữ liệu Tên field chứa dữ liệu hiển thị Tên field chứa dữ liệu cập nhật * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField – DropDownList Các công việc ta thực hiện cho đến thời điểm này là thay đổi control hiển thị cho chế độ ReadOnly (ItemTemplate) Click SmartTag của GridView1, chọn EditItemTemplate trong danh sách Display để tiếp tục thay đổi control hiển thị cho chế độ Edit của cột LoaiHang * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField – DropDownList Tiếp tục thay control TextBox thành DropDownList Thực hiện chỉ định dữ liệu như đã làm với ItemTemplate Ngoài ra, ta muốn khi user click chọn giá trị trong DropDownList thì MaHH được chọn sẽ cập nhật vào cột MaHH trong table LoaiHH Chọn Edit DataBindings từ SmartTag của DropDownList Chọn SelectedValue và Field binding tương ứng với nó là MaHH. Nghĩa là giá trị được chọn sẽ cập nhật vào MaHH của GridView Chọn End Edit Template trong SmartTag của GridView1 * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Bổ sung ImageField Chỉ định DataImageUrlField là tên field chứa đường dẫn đến hình ảnh, DataImageUrlFormatString là Images/{0} TemplateField – ImageField * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField – Điều khiển kiểm tra GridView cho phép ta bổ sung các điều khiển kiểm tra dữ liệu nhập cho các cột Điều khiển kiểm tra có thể là một điều khiển kiểm tra bất kỳ đã được đề cập Chọn Edit Template rồi chọn tiếp EditItemTemplate cho cột DonGia Bổ sung RequiredFieldValidator và thiết đặt thuộc tính ControlToValidate là TextBox1. Đồng thời đặt thuộc tính ErrorMessage là Bắt buộc nhập * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) TemplateField – Điều khiển kiểm tra (tt) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – GridView (tt) Chọn Edit, xóa DonGia, chọn Update báo lỗi “Bắt buộc nhập” * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView GridView cho ta sự quan sát dữ liệu tổng quát, cho phép chỉnh sửa, xóa dữ liệu. Tuy nhiên, GridView không cho phép thêm mới dữ liệu DetailsView cung cấp góc nhìn chi tiết từng record, cho phép thêm, xóa, sửa dữ liệu DetailsView có thể kết hợp với GridView tạo nên một giải pháp cập nhật và hiển thị dữ liệu hoàn hảo trên trang web * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView Ví dụ trong phần GridView ta có xây dựng cột MaHH là một dạng control liên kết đến trang ProductDetail.aspx Bây giờ ta xây dựng trang ProductDetail.aspx như sau Tạo trang mới, đặt tên ProductDetail.aspx Bổ sung SqlDataSource lấy dữ liệu từ table HangHoa với mệnh đề WHERE là MaHH=Request.QueryString(“ProductID”) Bổ sung control DetailsView, chỉ định DataSource * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView Chọn Edit Fields để điều chỉnh phần hiển thị tên field Chọn Auto Format để chỉ định dạng trình bày dữ liệu Chọn Edit Template để thay đổi các control TemplateField (thao tác thực hiện tương tự GridView) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView Ta có thể chọn định dạng như hình DetailsView cho phép thêm mới dữ liệu, do đó khi thay đổi control trong Edit Template, ta nên thay đổi cả trong chế độ Insert * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - FormView Control FormView về mặt trình bày dữ liệu và các chức năng đều tương tự như DetailsView Khi kết hợp GridView với: DetailsView: thường dùng để hiển thị thông tin chi tiết về record được chọn trong GridView cũng như thêm mới các record FormView: hiển thị thông tin dạng Master/Detail * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - DataList Tương tự GridView, DataList cũng trình bày dữ liệu theo dạng danh sách liệt kê với nhiều định dạng khác nhau phong phú hơn DataList chỉ được dùng để hiển thị dữ liệu, không cho phép phân trang Để phân trang ta cần thực hiện thủ công thông qua các control LinkButton * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – DataList (tt) Tiếp tục ví dụ trước: Thêm mới trang DMHHList.aspx Bổ sung SqlDataSource lấy dữ liệu từ table HangHoa Bổ sung DataList vào trang và chỉ định DataSource là SqlDataSource1 F5 để thực thi trang web Kết quả như hình sau * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – DataList (tt) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – DataList (tt) Chọn Edit Template từ SmartTag của DataList1 Trong ItemTemplate, dùng control Table để gióng thẳng hàng các control Định lại chữ tiếng việt và các định dạng hiển thị cần thiết khác * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – DataList (tt) Chọn Auto Format theo ý thích Điều chỉnh các thuộc tính như hình bên Bổ sung control Label, đặt tên là lblTotalRec Chận sự kiện Page_Load, viết lệnh như sau: lblTotalRec.Text = “Tổng số: “ + DataList1.Items.Count.ToString() * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – DataList (tt) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - UserControl User Control thực chất là một trang ASP.NET nhưng chuyên dùng để nhúng vào các trang web khác Trang User control có phần mở rộng là ascx Để sử dụng user control trong trang web, ta dùng chỉ dẫn Register * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – UserControl (tt) Sau khi đã đăng ký, ta khai báo sử dụng control này như sau: Tuy nhiên, trong chế độ Design của trang web, các thẻ này sẽ được phát sinh tự động khi ta nắm kéo thả trang ascx vào trang web * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – UserControl (tt) Thêm mới user control bằng cách chọn Add New Item, LEFT.ascx Bổ sung SqlDataSource lấy dữ liệu từ table LoaiHH Bổ sung ListBox lấy dữ liệu từ SqlDataSource1, đặt AutoPostBack=True Lưu user control * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – UserControl (tt) Bổ sung trang ASP.NET mới, tên UseUC.aspx Bổ sung SqlDataSource lấy dữ liệu từ table HangHoa với MaLoai lấy giá trị từ control HiddenField Bổ sung HiddenField tên hid Bổ sung GridView lấy dữ liệu từ SqlDataSource1 Kéo file LEFT.ascx vào trang web * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – UserControl (tt) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – UserControl (tt) Chận sự kiện Page_Load và viết lệnh: Dim lst As ListBox = LEFT1.FindControl("ListBox1") hid.Value = lst.SelectedValue.ToString() F5 để thực thi trang web, click chọn loại hàng bên trái để xem danh sách hàng hóa thuộc loại này được trình bày trong GridView * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – UserControl (tt) * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - MasterPage Hữu ích trong việc thống nhất dạng thức trình bày của các trang web trong website Thực chất là 1 trang ASP.NET có phần mở rộng là .master Trang master có chỉ dẫn ở đầu file giao diện là: * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt) Thêm trang master mới vào project * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt) Bổ sung control Table vào trang Kéo user control LEFT vào cell bên trái * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt) Mỗi trang master đều có ít nhất 1 ContentPlaceHolder dùng làm nơi giữ chỗ cho các trang ASP.NET có chỉ định dùng trang master Tuy nhiên ta có thể bổ sung thêm ContentPlaceHolder Tạo trang mới LoaiHH.aspx có chỉ định sử dụng trang master như sau * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt) Sau khi chọn Add,hộp thoại yêu cầu chọn trang master sẽ hiện ra * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt) Thiết kế trang LoaiHH tương tự trang UseUC đã thực hiện * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - UserControl Chận sự kiện Page_Load và viết lệnh: Dim lst As ListBox = Page.Master.FindControl(“LEFT1”). FindControl("ListBox1") hid.Value = lst.SelectedValue.ToString() F5 để thực thi trang web, click chọn loại hàng bên trái để xem danh sách hàng hóa thuộc loại này được trình bày trong GridView * VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – UserControl (tt) * NỘI DUNG (tt) Web tĩnh và động Giới thiệu về ASP.NET IIS (Internet Information Services) Các control trong ASP.NET Các đối tượng trong ASP.NET ASP.NET & ADO.NET Xây dựng ứng dụng bán sách qua mạng VII. Xây dựng ứng dụng bán sách qua mạng Tạo WebSite mới tên BookOnline Trong thư mục chứa WebSite, tạo thư mục Images/Books và chép các hình ảnh vào đây Trong cửa sổ Solution Explorer, thêm Folder mới tên Images, thêm tiếp Folder Books là con của Images Click phải Folder Books, chọn Add Existing Items rồi chọn các file hình ảnh * VII. Xây dựng ứng dụng bán sách qua mạng Tạo user control tìm sách Tạo trang Master Thiết kế và xây dựng phần khách hàng Sơ đồ website phần khách hàng Mô hình hoạt động và giao tiếp Thiết kế xử lý Xây dựng các webform Thiết kế và xây dựng phần quản trị * VII. Xây dựng ứng dụng bán sách qua mạng1. Tạo user control tìm sách Add New Item, chọn Web User Control và đặt tên là ucBookSearch.ascx Thiết kế giao diện cho control bao gồm 2 Label, 1 TextBox và 1 Button như sau: Viết lệnh cho button thực hiện chuyển sang trang khác như sau: Response.Redirect("BookSearch.aspx?title=" & title.Text) * VII. Xây dựng ứng dụng bán sách qua mạng1. Tạo trang master Add New Item, chọn Master Page và đặt tên là BookOnline.master Đặt 1 Table gồm 2 dòng, 2 cột vào trang Đặt hình ảnh LOGO vào cột 1 dòng 1 Từ Solution Explorer, kéo file ucBookSearch.aspx vào cột 1 dòng 2 Từ ToolBox, kéo Menu control vào cột 2 dòng 1 và tạo hệ thống trình đơn như sau * VII. Xây dựng ứng dụng bán sách qua mạng1. Tạo trang master Default.aspx SignIn.aspx ShoppingCart.aspx ShoppingCart.aspx HistorialShoppingCart.aspx Login.aspx AdminPage.aspx * VII. Xây dựng ứng dụng bán sách qua mạng1. Tạo trang master Giao diện trang master tương tự như sau * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàng Sơ đồ website phần khách hàng Sơ đồ mô tả số lượng trang và sự liên kết giữa các trang Mô hình hoạt động và giao tiếp Cách thức hoạt động của các trang và giữa các trang với nhau Thiết kế dữ liệu và xử lý Xây dựng các webform * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngA/. Sơ đồ WebSite * HistorialShoppingCartPage.aspx * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngB/. Mô hình hoạt động và giao tiếp * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngB/. Mô hình hoạt động và giao tiếp (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngB/. Mô hình hoạt động và giao tiếp (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) Tạo thành viên mới * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_addGuest as begin insert into ThanhVien (TenDN, MatKhauDN, Quyen, Ho, Ten, email, DC, DT, GhiChu, MaThe, SoThe, DaDK) values (null, null, null, null, null, null, null, null, null, null, null, 0) SELECT @@IDENTITY end Xóa thành viên * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_delGuest @matv int as begin delete from thanhvien where matv=@matv end Bổ sung thông tin khi thành viên SignIn * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_registerGuest @matv int, @tendn nvarchar(50), @mkdn nvarchar(50), @ho nvarchar(50), @ten nvarchar(50), @email nvarchar(50), @dc nvarchar(50), @dt nvarchar(50) as begin update thanhvien set TenDN=@tendn, MatKhauDN=@mkdn, Ho=@ho, Ten=@ten, email=@email, DC=@dc, DT=@dt, DaDK=1 where MaTV=@matv end Tạo giỏ hàng cho 1 thành viên create procedure sp_addCart @matv int as begin insert into GioHang (MaTV, NgayTao, DaDatHang) values (@matv, getdate(), 0) select @@identity end * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) Thêm sách vào giỏ hàng * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_addToCart @magh int, @masach int AS BEGIN declare @gia as int select @gia=Gia from Sach where MaSach=@masach insert into CTGioHang (MaGH, MaSach, GhiChu, SL, Gia) values (@magh, @masach, null, 1, @gia) END Xóa sách khỏi giỏ hàng * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_delCartItem @magh int, @masach int as begin delete from ctgiohang where magh=@magh and masach=@masach end Cập nhật sách trong giỏ hàng * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_updCartItem @magh int, @masach int, @ghichu nvarchar(20), @sl int as begin update ctgiohang set ghichu=@ghichu, sl=@sl where magh=@magh and masach=@masach end Tính tổng tiền của giỏ hàng * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_TongTienGH @magh int as begin select sum(SL*Gia) from ctgiohang where MaGH=@magh end Do mỗi thành viên khi chưa login đều được tạo 1 mã thành viên mới, nên sau khi login mã thành viên mã thành viên trong giỏ hàng hiện tại phải được cập nhật lại * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_updCartIDOfUser @magh int, @matv int as begin update giohang set matv=@matv where magh=@magh end Tạo đơn đặt hàng mới * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_addOrder @magh int, @matv int as begin insert into DDH (MaGH, MaTV, HTTT, HTVC) values (@magh, @matv, null, null) select @@identity end Thêm các sách từ giỏ hàng vào đơn ĐH * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_addToOrder @maddh int, @magh int as begin insert into ctddh (maddh, masach, ghichu, sl, gia) select @maddh, masach, ghichu, sl, gia from ctgiohang where magh=@magh update giohang set DaDatHang=1 where magh=@magh end Kiểm tra xem user đã đăng ký chưa? * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_checkRegistered @matv int as begin select DaDK from ThanhVien where MaTV=@matv end Kiểm tra xem tên đăng nhập đã tồn tại? * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_checkLoginName @tendn nvarchar(50) as begin select count(*) from thanhvien where TenDN=@tendn end Kiểm tra thông tin đăng nhập hợp lệ? * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_checkUserLogging @tendn nvarchar(50), @mkdn nvarchar(50) as begin select count(*) from thanhvien where tendn=@tendn and matkhaudn=@mkdn end Lấy về mã thành viên của user đăng nhập * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngC/. Thiết kế dữ liệu và xử lý (tt) create procedure sp_getUserID @tendn nvarchar(50), @mkdn nvarchar(50) as begin select MaTV from thanhvien where tendn=@tendn and matkhaudn=@mkdn end Default.aspx Thêm webformmới vào project, đặt tên và chọn Select master page Nhập nội dung giới thiệu Bổ sung controlBulletedList, đặt tên là optCat. Click chọn Choose DataSource và thực hiện tiếp các bước trong slide sau. * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Default.aspx (tt) Trong hộp thoại xuất hiện, chọn Trong hộp thoại xuất hiện kế tiếp, chọn Database, chú ý tên của DataSource phía dưới. OK Trong hộp thoại xuất hiện kế tiếp, chọn New Connection Trong hộp thoại xuất hiện kế tiếp, nhập tên server, chọn loại kết nối thích hợp và chọn CSDL. OK * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Default.aspx (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Default.aspx (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Default.aspx (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Default.aspx (tt) Double click vào button Xem thể loại này và viết lệnh như sau Nhấn F5 để xem thử kết quả trình bày trong trang này. Slide sau trình bày các bước thực hiện trang CategoryDetail.aspx * Response.Redirect("CategoryDetail.aspx?catID=" & optCat.SelectedValue) VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform CategoryDetail.aspx Thêm webform mới tên là CategoryDetail.aspx (chọn Select master page) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform CategoryDetail.aspx (tt) Bổ sung GridView vào webform và đặt tên là dgrTheLoaiSach Chọn Choose Data Source / Trong hộp thoại xuất hiện, chọn chuỗi kết nối đã tạo trước đó (bookstoreConnectionString) Chọn dữ liệu từ Specify a custom SQL or stored procedure. Next * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform CategoryDetail.aspx (tt) Dùng QueryBuilder hoặc viết lệnh SQL lấy các thông tin sau: MaSach, TenSach, TenTG, Gia, Hinh, MaTL, TenTL và điều kiện lọc các mẫu tin là MaTL=@matl. Next Chỉ định giá trị cho tham số: * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform CategoryDetail.aspx (tt) Chọn Edit Columns từ SmartTag của Grid * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform CategoryDetail.aspx (tt) Chận sự kiện Page_Load và điền thông tin cho lblTheLoai như sau: lblTheLoai.Text = GridView1.Rows(0).Cells(2).Text * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform ProductDetail.aspx Tạo webform mới đặt tên là ProductDetail.aspx Thêm vào trang control FormView, Button. FormView có Data Source lấy các thông tin MaSach, TenSach, TenTG, TenTL, Gia, Hinh, GhiChu với MaSach=@masach (=QueryString(“ProdID”)) Từ SmartTag của FormView, chọn Edit Template * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform ProductDetail.aspx (tt) Thêm Table vào ItemTemplate và kéo thả các control trong FormView theo vị trí như hình: * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Xóa Field Hinh Thêm vào 1 Image control Từ SmartTag, chọn Edit DataBindings Chọn như trong hình ProductDetail.aspx (tt) Chận sự kiện click trên Thêm vào giỏ hàng. * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Dim connStr As String = "server=(local);Initial Catalog=bookstore;Integrated Security=True" Dim dbConn As New SqlConnection(connStr) Dim dbCmd As New SqlCommand() Dim userID As Long dbConn.Open() dbCmd.Connection = dbConn If Session.IsNewSession() Then dbCmd.CommandText = "sp_addGuest" dbCmd.CommandType = Data.CommandType.StoredProcedure userID = dbCmd.ExecuteScalar() Session("userID") = userID dbCmd.CommandText = "sp_addCart" dbCmd.CommandType = Data.CommandType.StoredProcedure dbCmd.Parameters.Add("@MaTV", Data.SqlDbType.Int).Value = userID Session("cartID") = dbCmd.ExecuteScalar() ProductDetail.aspx (tt) Chận sự kiện click trên Thêm vào giỏ hàng (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Else userID = Session("userID") If (Session("cartID") Is Nothing) Then dbCmd.CommandText = "sp_addCart" dbCmd.CommandType = Data.CommandType.StoredProcedure dbCmd.Parameters.Add("@MaTV", Data.SqlDbType.Int).Value = userID Session("cartID") = dbCmd.ExecuteScalar() End If End If dbCmd = New SqlCommand() dbCmd.Connection = dbConn dbCmd.CommandText = "sp_addToCart" dbCmd.CommandType = Data.CommandType.StoredProcedure dbCmd.Parameters.Add("@MaGH", Data.SqlDbType.Int).Value = Session("cartID") dbCmd.Parameters.Add("@MaSach", Data.SqlDbType.Int).Value = CInt(Request.QueryString("ProdID")) dbCmd.ExecuteNonQuery() Response.Redirect("ShoppingCart.aspx") ShoppingCart.aspx Tạo webform mới và thêm control GridView lấy các thông tin: MaGH, MaSach, GhiChu, SL, CTGioHang.Gia, TenSach với MaGH=@magh (=Session(“cartID”)) Tạo khả năng phân trang,chỉnh sửa, xóa cho Grid Click chọn Edit Columnsvà định dạng lại các cộtnhư slide sau * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform ShoppingCart.aspx (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform ShoppingCart.aspx (tt) Chận sự kiện Page_Load: * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Dim dbConn As New SqlConnection(connStr) Dim dbCmd As New SqlCommand() dbConn.Open() dbCmd.Connection = dbConn dbCmd.CommandText = "sp_TongTienGH“ dbCmd.CommandType = Data.CommandType.StoredProcedure dbCmd.Parameters.Add("@magh", Data.SqlDbType.Int).Value = Session(“cartID”) lblTongTien.Text = dbCmd.ExecuteScalar().ToString() ShoppingCart.aspx (tt) Chận sự kiện RowDeleting của GridView * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Dim dbConn As New SqlConnection(connStr) Dim dbCmd As New SqlCommand() dbConn.Open() dbCmd.Connection = dbConn dbCmd.CommandText = "sp_delCartItem“ dbCmd.CommandType = Data.CommandType.StoredProcedure dbCmd.Parameters.Add("@magh", Data.SqlDbType.Int).Value = cartID dbCmd.Parameters.Add("@masach", Data.SqlDbType.Int).Value = e.Keys.Item(1) dbCmd.ExecuteNonQuery() e.Cancel = True Response.Redirect("shoppingcart.aspx") ShoppingCart.aspx (tt) Chận sự kiện RowUpdating của GridView * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Dim dbConn As New SqlConnection(connStr) Dim dbCmd As New SqlCommand() Dim gc As String = e.NewValues.Item(0) Dim sl As String = e.NewValues.Item(1) If (gc Is Nothing) Then gc = "“ If (sl Is Nothing) Then sl = "1“ If (Convert.ToInt32(sl) < 1) Then sl = "1" dbConn.Open() dbCmd.Connection = dbConn ShoppingCart.aspx (tt) Chận sự kiện RowUpdating của GridView (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform dbCmd.CommandText = "sp_updCartItem“ dbCmd.CommandType = Data.CommandType.StoredProcedure dbCmd.Parameters.Add("@magh", Data.SqlDbType.Int).Value = cartID dbCmd.Parameters.Add("@masach", Data.SqlDbType.Int).Value = e.Keys.Item(1).ToString() dbCmd.Parameters.Add("@ghichu", Data.SqlDbType.NVarChar).Value = gc dbCmd.Parameters.Add("@sl", Data.SqlDbType.Int).Value = Convert.ToInt32(sl) dbCmd.ExecuteNonQuery() e.Cancel = True Response.Redirect("shoppingcart.aspx") ShoppingCart.aspx (tt) Thêm LinkButton Đặt Hàng và chận sự kiện click của nó * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform ShoppingCart.aspx (tt) Thêm LinkButton Đặt Hàng và chận sự kiện click của nó (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform ShoppingCart.aspx (tt) Thêm LinkButton Đặt Hàng và chận sự kiện click của nó (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform ShoppingCart.aspx (tt) Thêm LinkButton Tiếp tục chọn sách dùng điều hướng đến trang Default.aspx * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform LogIn.aspx Tạo WebForm mới và thêm control Login. Chận sự kiện Authenticate: * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform LogIn.aspx Chận sự kiện Authenticate (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform LogIn.aspx Chận sự kiện Authenticate (tt) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform BookSearch.aspx Tạo WebForm mới và thêm control DataList lấy các thông tin: MaSach, TenSach, TenTG, Gia, Hinh, TenTL với TenSach LIKE ‘%@title%’ (=QueryString(“title”)) Chọn Edit Template cho DataList và điều chỉnh các control như sau: * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform Xóa Field Hinh Thêm vào 1 Image control Từ SmartTag, chọn Edit DataBindings Chọn như trong hình HistoricalShoppingCart.aspx Tạo WebForm mới và thêm control GridView lấy các thông tin: MaGH, NgayTao với DaDatHang=1 và MaTV=@matv (=Session(“userID”)) Thêm control GridView khác lấy các thông tin: MaSach, TenSach, TenTG, SL, CTGioHang.Gia với MaGH=@magh (=Control GridView1.SelectedValue) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform HistoricalShoppingCart.aspx (tt) Thêm 2 control GridView khác lấy các thông tin về các giỏ hàng chưa được đặt hàng của thành viên hiện tại (học viên tự làm) * VII. Xây dựng ứng dụng bán sách qua mạng1. Phần khách hàngD/. Xây dựng các webform VII. Xây dựng ứng dụng bán sách qua mạng1. Phần quản trị *
Các file đính kèm theo tài liệu này:
- ASP1[1].NET_04Mar08.ppt