ASP基礎(chǔ)知識(shí)Command對(duì)象講解
Coonamd 對(duì)象定義了將對(duì)數(shù)據(jù)源執(zhí)行的命令,可以用于查詢數(shù)據(jù)庫(kù)表并返回一個(gè)記錄集,也可以用于對(duì)數(shù)據(jù)庫(kù)表進(jìn)行添加、更改和刪除操作。
一、使用Command 對(duì)象的步驟:
當(dāng)在 ASP 頁面中使用 Command 對(duì)象處理數(shù)據(jù)時(shí),應(yīng)首先設(shè)置命令類型、命令文本以及相關(guān)的活動(dòng)數(shù)據(jù)庫(kù)連接等,并通過 Parameter 對(duì)象傳遞命令參數(shù),然后通過調(diào)用 Execute 方法來執(zhí)行 SQL 語句或調(diào)用存儲(chǔ)過程,以完成數(shù)據(jù)庫(kù)記錄的檢索、添加、更改和刪除任務(wù)。其步驟如下:
1、使用 ActiveCommand 屬性設(shè)置相關(guān)的數(shù)據(jù)庫(kù)連接;
2、使用 CommandType 屬性設(shè)置命令類型;
3、使用 CommandText 屬性定義命令(例如SQL語句)的可執(zhí)行文本;
4、使用 CommandTimeout 屬性設(shè)置命令超時(shí)時(shí)間;
5、使用 Execute 方法執(zhí)行命令。
二、Command 對(duì)象的屬性:
三、Command 對(duì)象的方法----Execute
該方法執(zhí)行在 CommandText 屬性中指定的查詢。語法格式分為以下兩種形式。
1、對(duì)于按行返回的 Command :
Set recordset=command.Execute(RecordsAffected,Parameters,Options)
2、對(duì)于不按行返回的 Command :
command.Execute RecordsAffected,Parameters,Options
其中參數(shù) RecordsAffected 為提供程序返回操作所影響的記錄數(shù)錄。Rarameters 為使用 SQL 語句傳送的參數(shù)值。Options 指示提供程序如何對(duì) Command 對(duì)象的 CommandText 屬性賦值。
四、使用 Parameters 集合
Command 對(duì)象具有由 Parameter 對(duì)象組成的 Parameters 集合,Parameter 對(duì)象代表與基于參數(shù)化查詢或存儲(chǔ)過程的 Command 對(duì)象相關(guān)聯(lián)的參數(shù)或自變量。通過創(chuàng)建 Parameter 對(duì)象并添加到 Parameter 集合中,可以向參數(shù)化查詢傳遞所需要的數(shù)據(jù)。使用 Parameter 集合的步驟如表下:
使用Parameter 集合的步驟
五、Command 對(duì)象的應(yīng)用實(shí)例
1、這是一個(gè)簡(jiǎn)單的員工基本情況管理系統(tǒng),其功能有:1)、添加員工資料;2)、更改員工資料;3)、刪除員工資料,檢索員工資料。它包含著七個(gè)頁面和一個(gè)數(shù)據(jù)庫(kù)。分別為:
1)、主頁面:index.asp
2)、添加數(shù)據(jù)頁面:add.htm
3)、保存添加數(shù)據(jù)頁面:add.asp
4)、更改數(shù)據(jù)頁面:Update.asp
5)、保存更改數(shù)據(jù)頁面:Update1.asp
6)、刪除記錄頁面:Detele.asp
7)、檢索員工資料頁面:shousho.asp
8)、數(shù)據(jù)庫(kù):RSGL.mdb.用到該數(shù)據(jù)庫(kù)中的”員工基本情況表“。
2、各頁面的代碼如下:
1)、主頁面:index.asp。該頁面的功能有:
a)、創(chuàng)建兩個(gè)對(duì)象,Connectiion對(duì)象和Recordset對(duì)象,其目的是連接數(shù)據(jù)庫(kù)和返回一個(gè)記錄集;
b)、創(chuàng)建一個(gè)表格,使do while循環(huán)語句將各條記錄在表格中顯示出來;
c)、創(chuàng)建三個(gè)超連接,一個(gè)用以連接添加數(shù)據(jù)頁面,另一個(gè)通過指定的員工姓名連接到更改數(shù)據(jù)頁面,還有一個(gè)通過指定的員工姓名連接到刪除頁面。
<% @ Language="VBScript" %><html><head><title>員工基本情況管理系統(tǒng)</title></head><body background="../../../images/bj1.jpg"><%"****************創(chuàng)建兩個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象)*********************dim cnn,rstset cnn=Server.CreateObject("ADODB.Connection")set rst=Server.CreateObject("ADODB.Recordset")"指定連接字符串,cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")cnn.OpensSQL="select * from 員工基本情況表""rst.Open sSQL,cnn,1,1set rst=cnn.Execute(sSQL,,adCmdText)%><!--************創(chuàng)建一個(gè)表格,用以顯示數(shù)據(jù)庫(kù)中的各條記錄***********--><table align="center" border="1"><caption><h3>教職員工基本信息表</h3></caption><tr colspan="5"><td><a href="shousho.asp">查詢記錄</a>||<a href="add.htm">添加記錄</a></td></tr><!--顯示各字段名--><tr><td align="center">員工姓名</td><td align="center">所在部門</td><td align="center">家庭住址</td><td align="center">家庭電話</td><td align="center">Email</td><td align="center">狀態(tài)</td><%"使用do while循環(huán)語句將各條記錄顯示出來。do while Not rst.eoft1=rst("員工姓名")t2=rst("所在部門")t3=rst("家庭住址")t4=rst("家庭電話")t5=rst("Email")tt="<tr align="center"><td>" & t1 & "</td><td>" &t2& "</td><td>" &t3& "</td><td>" &t4& "</td><td>" &t5& "</td><td>"tt=tt & "<a href=Update.asp?id=" & t1 & ">修改</a><a href=Delete.asp?id=" & t1 & ">||刪除</a></td></tr>"response.write ttrst.MoveNextloopcnn.CloseSet cnn=Nothing%></table></body></html>
2)、添加數(shù)據(jù)頁面:add.htm 。
本頁面由一個(gè)表單組成,其功能是向保存添加數(shù)據(jù)頁面(add.asp)提交數(shù)據(jù)。
<html><head><title>添加記錄</title></head><body background="../../../images/bj1.jpg"><div align="center"><form name="form1" method="post" action="add.asp"><table align="center" border="1"><tr><td colspan="2" align="center">員工基本情況表</td></tr><tr><td align="right">員工姓名:</td><td><input type="text" name="txtName"></td></tr><tr><td align="right">所在部門:</td><td><input type="text" name="txtDepartment"></td></tr><tr><td align="right">家庭住址:</td><td><input type="text" name="txtAddr"></td></tr><tr><td align="right">家庭電話:</td><td><input type="text" name="txtTel"></td></tr><tr><td align="right">Email:</td><td><input type="text" name="txtemail"></td></tr><tr><td align="center"><input type="submit" value="提交"></td><td align="center"><input type="reset" value="全部重寫"></td></tr></table></form></div></body></html>
3)、保存添加數(shù)據(jù)頁面:add.asp。
該頁面的功能有:
a)、使用Request對(duì)象獲取從add.htm頁面提交的值;
b)、創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和五個(gè)參數(shù),通過調(diào)用參數(shù)執(zhí)行INSERT插入命令。
<% @ Language="VBScript" %><html><head><title>添加記錄</title></head><body background="../../../images/bj1.jpg"><!-- #include virtual ="/adovbs.inc" --><%"****************創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和五個(gè)參數(shù)*********************dim cnn,rst,cmdset cnn=Server.CreateObject("ADODB.Connection")set rst=Server.CreateObject("ADODB.Recordset")set cmd=Server.CreateObject("ADODB.Command")"指定連接字符串,cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")cnn.Open"設(shè)置ActiveConnection屬性,使Command對(duì)象與打開的連接相關(guān)聯(lián)set cmd.ActiveConnection=cnn"指定傳送給數(shù)據(jù)提供者的命令文本是一條SQL語言。cmd.CommandType=adCmdTextcmd.CommandText="INSERT INTO 員工基本情況表(員工姓名,所在部門,家庭住址,家庭電話,Email) values(?,?,?,?,?)""創(chuàng)建五個(gè)Parameter對(duì)象set PrmName=cmd.CreateParameter("員工姓名",adVarChar,adParamInput,10)set PrmDepartment=cmd.CreateParameter("所在部門",adVarChar,adParamInput,10)set PrmAddr=cmd.CreateParameter("家庭住址",adVarChar,adParamInput,12)set PrmTel=cmd.CreateParameter("家庭電話",adVarChar,adParamInput,15)set PrmEmail=cmd.CreateParameter("Email",adVarChar,adParamInput,20)"將parameter對(duì)象添加到Parameters集合中。cmd.Parameters.Append prmNamecmd.Parameters.Append prmDepartmentCmd.Parameters.Append prmAddrCmd.Parameters.Append prmTelCmd.Parameters.Append prmEmail"使用表單值設(shè)置參數(shù)值PrmName.Value=Request.Form("txtName")PrmDepartment.Value=Request.Form("txtDepartment")PrmAddr.Value=Request.Form("txtAddr")PrmTel.Value=Request.Form("txtTel")PrmEmail.Value=Request.Form("txtEmail")"執(zhí)行INSERT插入命令cmd.Execute%><!--用表格顯示記錄。--><table align="center" border="1"><tr><td colspan="2" align="center">員工基本情況表</td></tr><tr><td align="right" width="130">員工姓名:</td><td width="200"><%=prmName.Value %></td></tr><tr><td align="right">所在部門:</td><td><%=prmDepartment.Value %></td></tr><tr><td align="right">家庭住址:</td><td><%=prmAddr.Value %></td></tr><tr><td align="right">家庭電話:</td><td><%=prmTel.Value %></td></tr><tr><td align="right">Email:</td><td><%=prmEmail.Value %></td></tr></table><center><p><p><p><hr width="505" color="#cc9999"> <p><p><h3>記錄添加成功!</h3><p><a href="add.htm">返回記錄添加表單</a>||<a href="index.asp">返回主頁</a></center></body></html>
4)、更改數(shù)據(jù)頁面:Update.asp。該頁面的功能有:
a)、創(chuàng)建兩個(gè)對(duì)象,Connectiion對(duì)象和Recordset對(duì)象,其目的是連接數(shù)據(jù)庫(kù)和返回一個(gè)記錄集;
b)、創(chuàng)建一個(gè)表單,其目的是提交更改過的數(shù)據(jù)。
cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")cnn.OpensSQL="select * from 員工基本情況表 where 員工姓名="" & a & """"rst.Open sSQL,cnn,1,1set rst=cnn.Execute(sSQL,,adCmdText)%><html><head><title>更改記錄</title></head><body background="../../../images/bj1.jpg"><div align="center"><!--*****************創(chuàng)建一個(gè)表單****************************************--><form name="form1" method="post" action="Update1.asp"><table align="center" border="1"><tr><td colspan="2" align="center">員工基本情況表</td></tr><tr><td align="right">員工姓名:</td><td><input type="text" name="txtName" value=<%=rst("員工姓名")%> readonly></td></tr><tr><td align="right">所在部門:</td><td><input type="text" name="txtDepartment" value=<%=rst("所在部門")%>></td></tr><tr><td align="right">家庭住址:</td><td><input type="text" name="txtAddr" value=<%=rst("家庭住址")%>></td></tr><tr><td align="right">家庭電話:</td><td><input type="text" name="txtTel" value=<%=rst("家庭電話")%>></td></tr><tr><td align="right">Email:</td><td><input type="text" name="txtemail" value=<%=rst("Email")%>></td></tr><tr><td align="center"><input type="submit" value="提交"></td><td align="center"><input type="reset" value="全部重寫"></td></tr></table></form></div></body></html>
5)、保存更改數(shù)據(jù)頁面:Update2.asp。
該頁面的功能有:
a)、使用Request對(duì)象獲取從Update.asp頁面提交的值;
b)、創(chuàng)建二個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象);
c)、通過表格顯示更改后的記錄。
<% @ Language="VBScript" %><%"*****************從提交表單中提取數(shù)值***************************Dim Name,Department,Addr,Tel,EmailName=Trim(Request.Form("txtName"))Department=Trim(Request.Form("txtDepartment"))Addr=Trim(Request.Form("txtAddr"))Tel=Trim(Request.Form("txtTel"))Email=Trim(Request.Form("txtEmail"))%><html><head><title>更改記錄</title></head><body><!-- #include virtual ="/adovbs.inc" --><%"****************創(chuàng)建二個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象)*********************dim cnn,rst,cmdset cnn=Server.CreateObject("ADODB.Connection")set rst=Server.CreateObject("ADODB.Recordset")"指定連接字符串,cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")cnn.OpensSQL="update 員工基本情況表 set 所在部門="" & Department & "",家庭住址="" & Addr & "",家庭電話="" & Tel & "",Email="" & Email & "" where 員工姓名="" & name & """rst.Open sSQL,cnn,1,2set rst=nothing%><!--**************************用表格顯示記錄。**********************--><table align="center" border="1"><tr><td colspan="2" align="center">員工基本情況表</td></tr><tr><td align="right" width="130" align="center">員工姓名:</td><td width="200"><%=Name %></td></tr><tr><td align="right">所在部門:</td><td><%=Department %></td></tr><tr><td align="right">家庭住址:</td><td><%=Addr %></td></tr><tr><td align="right">家庭電話:</td><td><%=Tel %></td></tr><tr><td align="right">Email:</td><td><%=Email %></td></tr></table><center><p><hr width="505" color="#cc9999"><h3>記錄更改成功!</h3><p><a href="index.asp">返回首頁</a></center></body></html>
6)、刪除數(shù)據(jù)頁面:Detele.asp。
a)、使用Request對(duì)象獲取要?jiǎng)h除的員工姓名;
b)、創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和一個(gè)參數(shù),通過參數(shù)指定的值刪除記錄;
c)、給出刪除成功提示框。
<title>更改記錄</title></head><body background="../../../images/bj1.jpg"><!-- #include virtual ="/adovbs.inc" --><%"****************創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和一個(gè)參數(shù)*********************dim cnn,rst,cmdset cnn=Server.CreateObject("ADODB.Connection")set rst=Server.CreateObject("ADODB.Recordset")set cmd=Server.CreateObject("ADODB.Command")"指定連接字符串,cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")cnn.Open"設(shè)置ActiveConnection屬性,使Command對(duì)象與打開的連接相關(guān)聯(lián)set cmd.ActiveConnection=cnn"指定傳送給數(shù)據(jù)提供者的命令文本是一條SQL語言。cmd.CommandType=adCmdTextcmd.CommandText="Delete from 員工基本情況表 where 員工姓名=? ""創(chuàng)建一個(gè)Parameter對(duì)象set PrmName=cmd.CreateParameter("員工姓名",adVarChar,adParamInput,10)"將parameter對(duì)象添加到Parameters集合中。cmd.Parameters.Append prmName"使用表單值設(shè)置參數(shù)值PrmName.Value=Name"執(zhí)行Delete刪除命令cmd.Execute%> <p><p><p><hr width="505" color="#cc9999"><center><h3>記錄刪除成功!</h3><p><a href="index.asp">返回主頁</a></center></body></html>
7)、檢索員工資料頁面 :shousho.asp。
a)、使用一個(gè)列表框用以提交檢索的條件;
b)、創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和一個(gè)參數(shù),使用 Parameter 對(duì)象的 Value 屬性將表單提交的值賦給參數(shù);
c)、使用for 循環(huán)語句將檢索出的記錄集中的每一條記錄都通過表格顯示出來。
<% @ Language="VBScript" %><html><head><title>使用參數(shù)化檢索記錄</title></head background="../../../images/bj1.jpg><body background="../../../images/bj1.jpg"><!--*************開始創(chuàng)建表單*****************--><div align="center"><p>查詢各部門員工的基本情況<form name="form1" method="post" action="Shousho.asp">選擇部門:<select size="1" name="department"><option selected value="all">全部記錄</option><option value="教務(wù)處">教務(wù)處</option><option value="英語教研室">英語教研室</option><option value="語文教研室">語文教研室</option><option value="數(shù)學(xué)教研室">數(shù)學(xué)教研室</option><option value="財(cái)務(wù)處">財(cái)務(wù)處</option></select><input type="submit" value="提交">||<a href="index.asp">返回主頁</a></form><!-- #include virtual ="/adovbs.inc" --><%"****************創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和一個(gè)參數(shù)*********************dim cnn,rst,cmd,iset cnn=Server.CreateObject("ADODB.Connection")set rst=Server.CreateObject("ADODB.Recordset")set cmd=Server.CreateObject("ADODB.Command")"指定連接字符串,cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb")cnn.Open"創(chuàng)建一個(gè)Parameter對(duì)象set PrmDepartment=cmd.CreateParameter("所在部門",adVarChar,adParamInput,10)"將Parameter對(duì)象添加到Prmameters集合中cmd.Parameters.Append prmDepartment"將用戶提交的所在部門名稱作為parameter對(duì)象的值prmDepartment.Value=Request.Form("department")"指定傳送給數(shù)據(jù)提供者的命令文本是一條SQL語言。cmd.CommandType=adCmdText"設(shè)置ActiveConnection屬性,使Command對(duì)象與打開的連接相關(guān)聯(lián)set cmd.ActiveConnection=cnn"******如果沒有提交所在部門名稱,或選擇所有部門,則顯示所有記錄,否則按參數(shù)進(jìn)行查詢。****************if PrmDepartment.Value="" or Request.Form("department")="all" thencmd.CommandText="select * from 員工基本情況表"Else"便用參數(shù)化查詢語句作為命令文本cmd.CommandText="select * from 員工基本情況表 where 所在部門=?"end if"向服務(wù)器發(fā)送SQL語句并返回一個(gè)記錄集Set rst=cmd.Execute"-----------如果記錄集不存在,則顯示一條提示信息,否則,列出符合條件的記錄。----------if rst.EOF then%><p><b>沒有找到符合條件的記錄!</b></p><% else %><table border="1"><tr><!--用for 循環(huán)語句列出字段名。--><% for i=0 to rst.Fields.Count-1 %><th><%=rst(i).Name %></th><% next %><!--用while條件語句列出每條記錄--><% while not rst.eof %><tr><%"用for循環(huán)語句列出某條記錄的各字段的值。for i=0 to rst.Fields.Count-1"如果字段值為空,則顯示一個(gè)空格if IsNull(rst(i)) then%><td> </td><% else %><td nowrap><% =rst(i) %></td><% end if %><% next %></tr><%rst.MoveNextwend%></table><% end if %></div></body></html>
以上就是關(guān)于ASP基礎(chǔ)知識(shí)Command對(duì)象的入門教程,希望對(duì)大家的學(xué)習(xí)有所幫助,多多交流探討。
相關(guān)文章:
1. asp與php中定時(shí)生成頁面的思路與代碼2. asp使用Weekday函數(shù)計(jì)算項(xiàng)目的結(jié)束時(shí)間3. asp服務(wù)器如何搭建4. 手把手教你使用Java來編寫ASP組件(2)5. ASP編碼必備的8條原則6. asp知識(shí)整理筆記2(問答模式)7. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作。”的詭異問題……8. ASP不能打開注冊(cè)表關(guān)鍵字錯(cuò)誤 "80004005"的解決方法9. ASP中RecordSet Open和Connection.Execute一些區(qū)別與細(xì)節(jié)分享10. ASP和PHP文件操作速度的對(duì)比
