Các nguyên tắc làm việc với ASP Các server-side script Được viết giữa <% và %> <%= %> nếu chỉ là một lời gọi hàm hoặc truy cập một biến trong ASP Được thực thi bên phía server Có thể được viết bằng nhiều ngôn ngữ khác nhau: Javascript, VBscript … Ngôn ngữ mặc định là VBScript. Các script có thể được viết lẫn với HTML Viết ASP bằng VBscript <html> <body> <% response.write("Hello World!") %> </body> </html>
Các nguyên tắc làm việc với ASP Viết ASP bằng Javascript Cần đặt JavaScript là ngôn ngữ script mặc định của trang web bằng cách thêm dòng đặc tả ngôn ngữ ở đầu file: <%@ language="javascript"%> <html> <body> <% Response.Write("Hello World!") %> </body> </html> Chú ý: Khác với VBScript - JavaScript là ngôn ngữ phân biệt chữ hoa, thường
Các đối tượng của ASP Response Response.write(“…”) Cho phép viết ra trang web một đoạn văn bản Đoạn văn bẳn có thể được định dạng bằng các thẻ HTML Ví dụ: <% response.write("<h2>You can use HTML tags to format the text!</h2>") %>
Các đối tượng của ASP Đối tượng Server CreateObject MapPath Cho phép tạo một instance của một đối tượng CreateObject(“kiểu đối tượng”) Server.CreateObject(“ADODB.Connection”) MapPath Ánh xạ một đường dẫn thành một đường dẫn đầy đủ Server.MapPath(path) Path: đường dẫn tương đối hoặc virtual path cần ánh xạ. Nếu tham số path bắt đầu bằng / hoặc \, path được coi là virtual path. Nếu không path được coi là đường dẫn tương đối với thư mục chứa file .asp đang được xử lí. Ví dụ: File test.asp ở trong thư mục C:\Inetpub\Wwwroot\Script. Server.MapPath("/script/test.asp") Trả lại: c:\inetpub\wwwroot\script\test.asp Server.MapPath("script/test.asp") Trả lại: c:\inetpub\wwwroot\script\script\test.asp
ASP và Form Dữ liệu người dùng nhập vào có thể được lấy lại bằng cách <form method="get" action="simpleform.asp"> First Name: <input type="text" name="fname" /> <br/> Last Name: <input type="text" name="lname" /> <br/> <input type="submit" value="Submit" /> </form> Dữ liệu người dùng nhập vào có thể được lấy lại bằng cách Request.QueryString Request.Form
Request.QueryString Request.QueryString dùng để lấy dữ liệu từ 1 form với method="get". Nếu người dùng nhập "Bill" và "Gates" vào form trên, URL được gửi đến server sẽ như sau: http://www.w3schools.com/simpleform.asp?fname=Bill&lname=Gates Request.QueryString(“var_name”) var_name: tên của phần tử HTML chứa dữ liệu Request.QueryString(“fname”)
Request.QueryString File simpleform.asp Output Welcome Bill Gates <body> Welcome <% Response.write(Request.QueryString("fname")) Response.write(" " + Request.QueryString("lname")) %> </body> Output Welcome Bill Gates
Request.Form Request.Form dùng để lấy dữ liệu từ 1 form với method=“post". Dữ liệu không xuất hiện trên URL Request.Form(“var_name") var_name: tên của phần tử HTML chứa dữ liệu Request.Form(“fname”)
Request.Form Ví dụ file simpleform.asp Output: Welcome Bill Gates <body> Welcome <% Response.write(Request.Form("fname")) Response.write(" " + Request.Form("lname")) %> </body> Output: Welcome Bill Gates
ADO ADO là một công nghệ của Microsoft ADO =ActiveX Data Objects ADO được cài đặt tự động với Microsoft IIS ADO là một giao diện lập trình ở mức ứng dụng dành cho truy cập cơ sở dữ liệu thông qua OLE DB OLE DB là một giao diện lập trình ở mức hệ thống, cho phép truy cập trực tiếp đến tất cả các kiểu dữ liệu.
ADO Kiến trúc
Truy cập CSDL với ADO Các đối tượng cơ bản Server ADODB.Connection ADODB.Recordset Quy trình truy cập cơ sở dữ liệu bằng ADO Tạo một ADO connection đến CSDL (1) Mở connection (2) Tạo một ADO recordset (3) Mở recordset (4) Trích dữ liệu từ recordset (5) Đóng recordset (6) Đóng connection (7)
Thao tác với Connection Quản lí kết nối đến nguồn dữ liệu Định nghĩa các thuộc tính của kết nối Provider Data source Đối tượng ADODB.Connection
Thao tác với Connection Mở kết nối tới nguồn dữ liệu (1,2) var cnn; cnn = Server.CreateObject("ADODB.Connection"); cnn.Provider=“Microsoft.Jet.OLEDB.4.0”; database_path =Server.MapPath(“database.mdb") cnn.open(database_path); Có thể gộp các tham số vào ConnectionString cnn.ConnectionString="para1=value;para2=value;etc;“ cnn.open(); cnn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; data source=database.mdb;“
Thao tác với Connection SQL server "Provider=SQLOLEDB;" MySQL server "Provider=MSDASQL;"
Thao tác với Connection Đóng kết nối (7) cnn.close();
Thao tác với Recordset Recordset: Đối tượng ADODB.Recordset Quản lí các bản ghi thu được từ truy vấn CSDL Đối tượng ADODB.Recordset
Thao tác với Recordset Thực hiện một câu truy vấn bằng Recordset Recordset.Open(Source, ActiveConnection, CursorType, LockType, Options) Source: Câu lệnh truy vấn SQL ActiveConnection: Tên đối tượng kết nối CursorType: Kiểu con trỏ khi mở Recordset Locktype: Kiểu khoá khi mở Recordset Options: Lựa chọn thêm
Thao tác với Recordset Tạo và mở một ADO Recordset (3,4) var rs= Server.CreateObject("ADODB.Recordset"); rs.open("Select * from Nguoi", cnn);
Thao tác với Recordset Truy vấn đến một trường của một bản ghi. Ví dụ rs(“ten”) Ví dụ Response.write(rs(“ten”)+”co tuoi la” + rs(“tuoi”)); Duyệt qua các bản ghi trong tập Recordset If (!rs.EOF) rs.MoveFirst While (!rs.EOF) { Response.write(rs(“ten”)+” song tai ” + rs(“diachi”)); rs.MoveNext; }
Thao tác với Recordset Di chuyển con trỏ qua các bản ghi MoveFirst MoveNext MoveLast MovePrevious Kiểm tra vị trí con trỏ EOF: kiểm tra con trỏ có ở cuối bản ghi hay không BOF: kiểm tra con trỏ có ở đầu bản ghi hay không RecordCount: số bản ghi trong Recordset
Thao tác với Recordset Tìm kiếm bản ghi – Find Recordset.Find(“điều kiện”, [SkipRows], [Direction], [Start]) Các toán tử điều kiện =, <, >, <=, >=, <> LIKE Ví dụ rs.Find(“name=‘A’ ”); rs.Find(“name LIKE `%A%’ ”); Chú ý: một xâu kí tự trong điều kiện được đặt trong ‘ ’.
Thao tác với Recordset Lọc các bản ghi-Filter: Tạm thời giới hạn các bản ghi trong Recordset Recordset.Filter = “điều kiện tìm kiếm” Ví dụ: rs.Filter=“name=‘ABC’ OR age=30” Xoá bộ lọc bằng cách thiết lập lại thuộc tính Filter về rỗng rs.Filter=“”
Thao tác với Recordset Thêm một bản ghi Trình tự Ví dụ Tạo một bản ghi rỗng mới Nhập nội dung Cập nhật bản ghi Ví dụ rs.AddNew(); rs(“name”)=“D”; rs(“age”)=50; rs.Update();
Thao tác với Recordset Sửa bản ghi Xoá bản ghi Thay đổi nội dung bản ghi tại vị trí hiện tại sau đó gọi Recordset.update Ví dụ rs(“ten”)= “Nguyen Van B”; rs.Update(); Xoá bản ghi Recordset.Delete(); Ví dụ, xoá bản ghi tại vị trí hiện tại: rs.Delete();
Nhắc lại câu lệnh SQL SELECT fields FROM tables WHERE field operator value Operator `=, <, >, >=,<=, <>, BETWEEN, LIKE ‘%value%’, IN Xâu kí tự trong điều kiện WHERE đặt trong dấu ‘ ’ INSERT INTO table_name[(field1,field2, …, fieldN)] VALUES (val1, val2, …, valN) UPDATE table_name SET field1=val1, field2=val2,… WHERE field = val DELETE FROM table WHERE field=val
Ví dụ ASP với radio button