ขั้นตอนการเรียนรู้ ASP:
1. 5 ออบเจ็กต์ คำขอ, การตอบสนอง, เซสชัน, เซิร์ฟเวอร์, แอปพลิเคชัน
2. ส่วนประกอบฐานข้อมูลสององค์ประกอบ Adodb.Recordset Adodb.Connection
3. Request.From(ชื่อแบบฟอร์ม) เพื่อรับข้อมูลแบบฟอร์ม
4. Request.QueryString(พารามิเตอร์ Url) รับพารามิเตอร์ Url
5.index.asp?act=save
6. Request.QueryString (ทำหน้าที่)
1. คำขอ
Request.Cookies (คุกกี้) โดยทั่วไปคุกกี้จะใช้เพื่อเก็บข้อมูลผู้ใช้และใช้สำหรับการตรวจสอบ เซสชันก็มีประเภทเดียวกัน โดยทั่วไปแล้ว คุกกี้จะถูกจัดเก็บไว้ในฮาร์ดดิสก์ของผู้ใช้ คุณสามารถละเว้นวิธีการได้โดยตรง โดยใช้ Request (ชื่อพารามิเตอร์) เขาจะใช้ From QueryString Cookies เพื่อรับค่าของ Request
2. การตอบสนอง
การตอบสนองเขียนเอาต์พุตไปยังเบราว์เซอร์
การตอบสนองการเปลี่ยนเส้นทาง
Response.End หยุดส่งออกไปยังเบราว์เซอร์
Response.Cookies เขียนคุกกี้ไปยังไคลเอนต์
Response.Cookies(CookieName) = ทดสอบ
Responsp.Cookies(CookieName).Domain=china228.com หากเขียนในลักษณะนี้ สามารถรับได้โดยใช้ Request.Cookies(CookieName) ภายใต้ชื่อโดเมน China228.com ทั้งหมด
3. เซสชัน
Session(SessionName) = เก็บข้อมูลในเซสชัน
หากเซสชัน (SessionName) <> จากนั้นพิจารณาว่าโดยทั่วไปมีเซสชันอยู่เพื่อตรวจสอบเซสชัน (SessionName) = ล้างเซสชัน
Session.Abandon จะล้างเซสชันทั้งหมด
Session.TimeOut = 100 ตั้งค่าหน่วยเวลาหมดอายุของเซสชันเป็นวินาที
เซสชั่นถูกเก็บไว้บนเซิร์ฟเวอร์ คุกกี้จะถูกเก็บไว้ในฮาร์ดดิสก์ของผู้ใช้ เมื่อรีสตาร์ทเซสชั่น พูลกระบวนการจะหายไปและจะไม่มีคุกกี้อีกต่อไป เว้นแต่เราจะเขียนโปรแกรมเพื่อบังคับล้างมัน
4. เซิร์ฟเวอร์
Server.Mappath แปลงเส้นทางเสมือนเป็นเส้นทางจริง หากโปรแกรมของคุณอยู่บนไดรฟ์ C คุณจะใช้ path = Server.Mappath(/) ซึ่งเหมือนกับ path = c:/ ตามไดเร็กทอรีราก
Server.CreateObject เป็นส่วนประกอบการลงทะเบียนที่ใช้กันทั่วไป Server.CreateObject(Adodb.RecordSet) ลงทะเบียนส่วนประกอบฐานข้อมูล
5. แอปพลิเคชันเป็นวัตถุส่วนกลาง เหมือนกับเซสชัน ความแตกต่างคือ แอปพลิเคชันเก็บข้อมูลผู้ใช้แต่ละคน
Application(Site) = Http://www.webjx.com ตราบใดที่ไฟล์ทั้งหมดภายใต้ไซต์สามารถเรียกแอปพลิเคชันนี้ได้ ชื่อโดเมนระดับที่สองจะไม่สามารถเรียกแอปพลิเคชันนี้ได้ แต่ใช้คุกกี้เพื่อตั้งชื่อโดเมนที่มีอยู่
================================================== =====. =====
6. Adodb.Connection หากต้องการเชื่อมต่อกับฐานข้อมูล ขั้นแรกให้ลงทะเบียนวัตถุ Conn Set Conn = Server.CreateObject(Adodb.Connection) //ใช้วิธี CreateObject ของวัตถุเซิร์ฟเวอร์ จากนั้นใช้วิธีเปิดของ Connection เพื่อเชื่อมต่อกับฐานข้อมูล Conn.Open ผู้ให้บริการ=Microsoft.Jet.OLEDB .4.0;แหล่งข้อมูล=&Server.Mappath(Date.mdb) Server.Mappath(Date.mdb) คือ Date.Mdb ใต้ไดเร็กทอรีปัจจุบัน โดยทั่วไป เราใส่สิ่งนี้ไว้ใน Conn.asp
-
ดิมคอนน์,คอนสเตร
ตั้งค่า Conn = Server.CreateObject (Adodb.Connection)
ConnStr = ผู้ให้บริการ=Microsoft.Jet.OLEDB.4.0;แหล่งข้อมูล=&Server.Mappath(Date.mdb)
Conn.เปิด ConnStr
-
Dim คือการกำหนดตัวแปร ในขณะที่ asp เป็นภาษาที่พิมพ์ได้ไม่ชัดเจนและไม่จำเป็นต้องกำหนด ต่างจาก C#, Java และภาษาที่คล้ายกันซึ่งจะต้องกำหนดก่อนจึงจะสามารถใช้งานได้
วิธีการดำเนินการ Conn.Execute(Sql) ดำเนินการคำสั่ง SQL Conn.Execute(Insert Into Tablename(1,2,)Values(1,2))
Conn.Close ปิดวัตถุแทรก แทรกชิ้นส่วนของข้อมูล ปรับปรุง แก้ไขข้อมูล ลบ ลบ เลือกแบบสอบถาม
7. Adodb.Recordset ส่งคืนชุดระเบียนซึ่งเป็นอ็อบเจ็กต์ที่ลงทะเบียนไว้ Set Rs = Server.CreateObject(Adodb.Recordset) rs นี้สามารถกำหนดได้ด้วยตัวเอง ไม่จำเป็นต้องใช้ rs หรือ conn เนื่องจากสิ่งเหล่านี้เป็นส่วนประกอบของ Com (นั่นคือ ใช้ deiphl C++ Dll ที่เขียนขึ้นมา บางฟังก์ชันที่ ASP เองไม่สามารถนำมาใช้ได้) ไม่ใช่ออบเจ็กต์ในตัวของ ASP ดังนั้นออบเจ็กต์จะต้องได้รับการลงทะเบียน
จากนั้นใช้วิธีการ Open เพื่อเปิดชุดบันทึก Rs.Open Select * From TableName,Conn,1,3 Rs.Open Sql Statement,Conn object,1,3 (พารามิเตอร์ 1,3 จะกล่าวถึงในภายหลัง) คำสั่ง Sql คือ โดยทั่วไปคำสั่งแบบสอบถามวัตถุ Conn เป็นวัตถุฐานข้อมูลที่เปิดโดยการเชื่อมต่อด้านบน
1 เปิดประเภทเคอร์เซอร์ของฐานข้อมูล
3 หากเปลี่ยนพารามิเตอร์นี้เป็น 1 ไลบรารีจะไม่สามารถดำเนินการ อัปเดต หรือลบได้ (ไม่สามารถใช้ Rs.Addnew, Rs.Update, Rs.Delete) หากเปลี่ยนเป็น 2 ไลบรารีจะถูกเปิดในรูปแบบพิเศษ (เมื่อผู้ใช้แก้ไข) เมื่อเข้าใช้ห้องสมุด ห้องสมุดจะถูกล็อคเพื่อรักษาความสอดคล้องของข้อมูล)
3. คุณสามารถดำเนินการใดๆ บนไลบรารีได้ รวมถึงการลบ การแก้ไข การอัปเดต และเพิ่ม
โดยทั่วไป ฉันจะใช้สองประเภทที่นี่ เมื่อใช้หน้ารายการ เนื่องจากไม่จำเป็นต้องใช้งานไลบรารี การสืบค้นแบบอ่านอย่างเดียวก็เพียงพอแล้ว ฉันใช้ Rs.Open Sql,Conn,1,3 Rs .Bof ส่งคืน True หากเป็นข้อมูลชิ้นแรก มิฉะนั้นจะส่งคืน False คุณสามารถใช้สิ่งนี้เพื่อตรวจสอบว่ามีบันทึกในฐานข้อมูลหรือไม่หาก rs.eof และ rs.bof หมายความว่าหากเคอร์เซอร์ปัจจุบันไม่ใช่รายการแรกหรือรายการสุดท้าย แสดงว่าไม่มีบันทึก หาก rs.eof หมายความว่ามีบันทึก เราจะใช้การวนซ้ำเพื่อส่งออกข้อมูล เข้าใจเหมือนกับ Conn ก็คือตัวแปร
ตั้ง Rs = Server.CreateObject (Adodb.Recordset)
Rs.Open Sql,Conn,1,1
ถ้าไม่ใช่ Rs.Eof แล้ว ถ้าไม่ได้อยู่ท้ายชุดบันทึก แสดงว่า มีบันทึกอยู่
ทำในขณะที่ไม่ Rs.Eof จนกระทั่งสิ้นสุดชุดบันทึกจะแยกออกจากวง
Response.Write Rs (ชื่อฟิลด์)
เคอร์เซอร์ Rs.MoveNext เลื่อนลง
วนซ้ำ
สิ้นสุดถ้า
Rs.Close //ยกเลิกการลงทะเบียนวัตถุ
ตั้งค่า Rs = ไม่มีสิ่งใด // ปล่อยทรัพยากร
เนื่องจาก asp เป็นอ็อบเจ็กต์เชิงปริมาณที่พิมพ์ไม่ชัดเจน จึงไม่จำเป็นต้องกำหนดประเภท
ถ้าเป็น C# ก็แค่นั้นแหละ
int i; string str; asp คือ dim i, str และ asp กำหนดตัวแปรที่ไม่สามารถกำหนดค่าเริ่มต้นได้
C# int i = 1;
แอสพีดิมี=1
เรามาพูดถึงการเคลื่อนไหวของพอยน์เตอร์กันดีกว่า (เคอร์เซอร์ด้านบนควรเป็นตัวชี้ เคอร์เซอร์เป็นภาษา C ไม่ใช่ ASP)
Rs.MoveNext เลื่อนลงมาหนึ่งบรรทัด
Rs.MovePrevious เลื่อนขึ้นหนึ่งบรรทัด
Rs.Movefirst ย้ายไปที่รายการแรก
Rs.MoveLast ย้ายไปยังรายการสุดท้าย
Rs.Absoluteposition = n ย้ายตัวชี้บันทึกไปที่แถวที่ n
ที่ใช้กันทั่วไปคือ Rs.MoveNext
พูดคุยเกี่ยวกับคุณลักษณะหลายวิธีของเพจ asp
Rs.Pagesize = n แสดงข้อมูล N ชิ้นต่อหน้า
Rs.absolutepage = n จะย้ายตัวชี้บันทึกไปที่ข้อมูลแรกบนหน้า N
Rs.RecordCount จำนวนเรคคอร์ดทั้งหมดในชุดเรคคอร์ด
Rs.PageCount จำนวนเพจทั้งหมดในชุดเรคคอร์ด
-
ดิมคอนน์,คอนสเตร
ตั้งค่า Conn = Server.CreateObject (Adodb.Connection)
ConnStr = ผู้ให้บริการ=Microsoft.Jet.OLEDB.4.0;แหล่งข้อมูล=&Server.Mappath(Date.mdb)
Conn.เปิด ConnStr
ตั้ง Rs = Server.CreateObject (Adodb.Recordset)
Rs.Open Sql,Conn,1,1
ขนาดหน้า = 20
Rs.PageSize = PageSize 'แสดง 20 รายการต่อหน้า
curpage = Request.QueryString(Page) 'รับหมายเลขหน้าปัจจุบัน'
ถ้า curpage = Or IsNumeric(curpage) หรือ (curpage-Rs.pagecount) > 0 แล้ว
'หาก curpage เท่ากับว่างเปล่าหรือไม่ใช่ประเภทตัวเลข หรือ curpage มากกว่าจำนวนทั้งหมด
เคอร์เพจ=1
'จากนั้นเคอร์เพจจะเท่ากับ 1
สิ้นสุดถ้า
Rs.absolutepage = curpage 'ตั้งค่าหน้าชุดระเบียนปัจจุบัน
ผม=1
ถ้าไม่ใช่ Rs.Eof แล้ว ถ้าไม่ได้อยู่ท้ายชุดบันทึก แสดงว่า มีบันทึกอยู่
ทำในขณะที่ไม่ใช่ Rs.Eof และ i < PageSize ออก หากเป็นบันทึกสุดท้ายของชุดข้อมูล หรือหาก i มากกว่า Rs.PageSize
Response.Write Rs (ชื่อฟิลด์)
i = i + 1 i + 1 หนึ่งครั้งทุกๆ ลูป
ตัวชี้ Rs.MoveNext เลื่อนลง
วนซ้ำ
สิ้นสุดถ้า
-
<%ถ้า curpage=1 แล้ว%>
หน้าแรก
<%อื่น%>
<a href=?page=1>หน้าแรก</a>
<%สิ้นสุดถ้า%>
<%ถ้า curpage=1 แล้ว%>
หน้าก่อน
<%อื่น%>
<a href=?page=<%=curpage-1%>>หน้าก่อนหน้า</a>
<%สิ้นสุดถ้า%>
<%ถ้า rs.pagecount<curpage+1 แล้ว%>
หน้าถัดไป
<%อื่น%>
<a href=?page=<%=curpage+1%>>หน้าถัดไป</a>
<%สิ้นสุดถ้า%>
<%ถ้า rs.pagecount<curpage+1 แล้ว%>
หน้าสุดท้าย
<%อื่น%>
<a href=?page=<%=rs.pagecount%>>หน้าสุดท้าย</a>
<%สิ้นสุดถ้า%>
โปรดทราบว่า curpage เป็นหน้าปัจจุบันที่ได้รับโดยใช้ Reqeust.Querystring ด้านบน
หน้าแรก:
ขึ้นอยู่กับว่าหน้าปัจจุบันเป็นหน้าแรกหรือไม่ (นั่นคือหน้าแรก) คำว่าหน้าแรกจะแสดงโดยไม่มีลิงก์ ข้ามไปที่หน้าแรกโดยตรง
หน้าก่อนหน้า:
เมื่อหน้าปัจจุบันเป็นหน้าแรก ลิงก์จะไม่ถูกต้อง ในทางกลับกัน ลิงก์จะไปยังหน้าก่อนหน้า ในที่นี้เราใช้: <%=curpage-1%> ซึ่งหมายถึงการลบ 1 จากหมายเลขหน้าปัจจุบันเพื่อให้ได้ หน้าก่อนหน้า
หน้าถัดไป:
ที่นี่คุณต้องใช้แอตทริบิวต์ rs.pagecount เพื่อเปรียบเทียบ หากจำนวนหน้าทั้งหมดน้อยกว่าหมายเลขหน้าปัจจุบันบวก 1 แสดงว่านี่คือหน้าสุดท้ายและลิงก์จะไม่ถูกต้อง ไปที่หน้าถัดไป
หน้าสุดท้าย:
ฟังก์ชันเดียวกับหน้าถัดไปจะกำหนดว่าลิงก์จะไม่ถูกต้องเมื่อเป็นหน้าสุดท้าย มิฉะนั้น หน้าปัจจุบันจะถูกกำหนดให้เป็น rs.pagecount (จำนวนหน้าทั้งหมด)
-
Rs.Close //ยกเลิกการลงทะเบียนวัตถุ
ตั้งค่า Rs = ไม่มีสิ่งใด // ปล่อยทรัพยากร
-
Rs.Addnew นี่คือการเพิ่มระเบียนใหม่ ชุดข้อมูลที่เปิดต้องเป็น 1,3
ตั้ง Rs = Server.CreateObject (Adodb.Recordset)
Sql = เลือก * จาก Tealename
Rs.Open Sql,Conn,1,3
Rs.Addnew() เพิ่มระเบียนที่ส่วนท้ายของชุดระเบียน
Rs(ชื่อฟิลด์ 1) = ค่า 1
Rs(ชื่อฟิลด์ 2) = ค่า 2
Rs(ชื่อฟิลด์ 3) = ค่า 3
Rs.Update() อัพเดตการเปลี่ยนแปลงฐานข้อมูล
฿ปิด
ตั้งค่า Rs=ไม่มีอะไร
-
฿ อัปเดตข้อมูลอัปเดต
ตั้ง Rs = Server.CreateObject (Adodb.Recordset)
Sql = เลือก * จาก Tealename โดยที่ id = 1 'แก้ไขข้อมูลด้วย id 1
Rs.Open Sql,Conn,1,3
Rs (ชื่อฟิลด์ที่จะอัปเดต 1) = ค่าที่อัปเดต 1
Rs.Update() อัพเดตการเปลี่ยนแปลงฐานข้อมูล
฿ปิด
ตั้งค่า Rs=ไม่มีอะไร
฿ ลบ ลบ
ตั้ง Rs = Server.CreateObject (Adodb.Recordset)
Sql = เลือก * จาก Tealename โดยที่ id = 1 'ลบข้อมูลด้วย id 1
Rs.Open Sql,Conn,1,3
Rs.Delete() 'ลบข้อมูลปัจจุบัน แต่ตัวชี้จะไม่เลื่อนลง ดังนั้นหากคุณต้องการลบข้อมูลหลายส่วน คุณจะต้องใช้การวนซ้ำ
฿ปิด
ตั้งค่า Rs=ไม่มีอะไร
การบรรยายเกี่ยวกับคุณสมบัติของวัตถุการดำเนินการฐานข้อมูลหลักทั้งสองเสร็จสมบูรณ์แล้ว