Coonamd 對象定義了將對數據源執行的命令,可以用於查詢數據庫表並返回一個記錄集,也可以用於對數據庫表進行添加、更改和刪除操作。
一、使用Command 對象的步驟:
當在 ASP 頁面中使用 Command 對象處理數據時,應首先設置命令類型、命令文本以及相關的活動數據庫連接等,並通過 Parameter 對象傳遞命令參數,然後通過調用 Execute 方法來執行 SQL 語句或調用存儲過程,以完成數據庫記錄的檢索、添加、更改和刪除任務。其步驟如下:
1、使用 ActiveCommand 屬性設置相關的數據庫連接;
2、使用 CommandType 屬性設置命令類型;
3、使用 CommandText 屬性定義命令(例如SQL語句)的可執行文本;
4、使用 CommandTimeout 屬性設置命令超時時間;
5、使用 Execute 方法執行命令。
二、Command 對象的屬性:
三、Command 對象的方法----Execute
該方法執行在 CommandText 屬性中指定的查詢。語法格式分為以下兩種形式。
1、對於按行返回的 Command :
Set recordset=command.Execute(RecordsAffected,Parameters,Options)
2、對於不按行返回的 Command :
command.Execute RecordsAffected,Parameters,Options
其中參數 RecordsAffected 為提供程序返回操作所影響的記錄數錄。Rarameters 為使用 SQL 語句傳送的參數值。Options 指示提供程序如何對 Command 對象的 CommandText 屬性賦值。
四、使用 Parameters 集合
Command 對象具有由 Parameter 對象組成的 Parameters 集合,Parameter 對象代表與基於參數化查詢或存儲過程的 Command 對象相關聯的參數或自變量。通過創建 Parameter 對象並添加到 Parameter 集合中,可以向參數化查詢傳遞所需要的數據。使用 Parameter 集合的步驟如表下:
使用Parameter 集合的步驟
五、Command 對象的應用實例
1、這是一個簡單的員工基本情況管理系統,其功能有:1)、添加員工資料;2)、更改員工資料;3)、刪除員工資料,檢索員工資料。它包含著七個頁面和一個數據庫。分別為:
1)、主頁面:index.asp
2)、添加數據頁面:add.htm
3)、保存添加數據頁面:add.asp
4)、更改數據頁面:Update.asp
5)、保存更改數據頁面:Update1.asp
6)、刪除記錄頁面:Detele.asp
7)、檢索員工資料頁面:shousho.asp
8)、數據庫:RSGL.mdb.用到該數據庫中的”員工基本情況表“。
2、各頁面的代碼如下:
1)、主頁面:index.asp。該頁面的功能有:
a)、創建兩個對象,Connectiion對象和Recordset對象,其目的是連接數據庫和返回一個記錄集;
b)、創建一個表格,使do while循環語句將各條記錄在表格中顯示出來;
c)、創建三個超連接,一個用以連接添加數據頁面,另一個通過指定的員工姓名連接到更改數據頁面,還有一個通過指定的員工姓名連接到刪除頁面。
<% @ Language="VBScript" %> <html> <head><title>員工基本情況管理系統</title></head> <body background="../../../images/bj1.jpg"> <% '****************創建兩個對象(連接對象、記錄集對象)********************* dim cnn,rst set 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.Open sSQL="select * from 員工基本情況表" 'rst.Open sSQL,cnn,1,1 set rst=cnn.Execute(sSQL,,adCmdText) %> <!--************創建一個表格,用以顯示數據庫中的各條記錄***********--> <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">狀態</td> <% '使用do while循環語句將各條記錄顯示出來。 do while Not rst.eof t1=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 tt rst.MoveNext loop cnn.Close Set cnn=Nothing %> </table> </body> </html>
2)、添加數據頁面:add.htm 。
本頁面由一個表單組成,其功能是向保存添加數據頁面(add.asp)提交數據。
<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)、保存添加數據頁面:add.asp。
該頁面的功能有:
a)、使用Request對象獲取從add.htm頁面提交的值;
b)、創建三個對象(連接對象、記錄集對象和指令對象)和五個參數,通過調用參數執行INSERT插入命令。
<% @ Language="VBScript" %> <html> <head> <title>添加記錄</title> </head> <body background="../../../images/bj1.jpg"> <!-- #include virtual ="/adovbs.inc" --> <% '****************創建三個對象(連接對象、記錄集對象和指令對象)和五個參數********************* dim cnn,rst,cmd set 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 '設置ActiveConnection屬性,使Command對象與打開的連接相關聯 set cmd.ActiveConnection=cnn '指定傳送給數據提供者的命令文本是一條SQL語言。 cmd.CommandType=adCmdText cmd.CommandText="INSERT INTO 員工基本情況表(員工姓名,所在部門,家庭住址,家庭電話,Email) values(?,?,?,?,?)" '創建五個Parameter對象 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對象添加到Parameters集合中。 cmd.Parameters.Append prmName cmd.Parameters.Append prmDepartment Cmd.Parameters.Append prmAddr Cmd.Parameters.Append prmTel Cmd.Parameters.Append prmEmail '使用表單值設置參數值 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") '執行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)、更改數據頁面:Update.asp。該頁面的功能有:
a)、創建兩個對象,Connectiion對象和Recordset對象,其目的是連接數據庫和返回一個記錄集;
b)、創建一個表單,其目的是提交更改過的數據。
cnn.ConnectionString="PROVIDER=Microsoft.jet.OLEDB.4.0;Data Source=" & server.MapPath("../rsgl.mdb") cnn.Open sSQL="select * from 員工基本情況表 where 員工姓名='" & a & "'" 'rst.Open sSQL,cnn,1,1 set rst=cnn.Execute(sSQL,,adCmdText) %> <html> <head><title>更改記錄</title></head> <body background="../../../images/bj1.jpg"> <div align="center"> <!--*****************創建一個表單****************************************--> <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)、保存更改數據頁面:Update2.asp。
該頁面的功能有:
a)、使用Request對象獲取從Update.asp頁面提交的值;
b)、創建二個對象(連接對象、記錄集對象);
c)、通過表格顯示更改後的記錄。
<% @ Language="VBScript" %> <% '*****************從提交表單中提取數值*************************** Dim Name,Department,Addr,Tel,Email Name=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" --> <% '****************創建二個對象(連接對象、記錄集對象)********************* dim cnn,rst,cmd set 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.Open sSQL="update 員工基本情況表 set 所在部門='" & Department & "',家庭住址='" & Addr & "',家庭電話='" & Tel & "',Email='" & Email & "' where 員工姓名='" & name & "'" rst.Open sSQL,cnn,1,2 set 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)、刪除數據頁面:Detele.asp。
a)、使用Request對象獲取要刪除的員工姓名;
b)、創建三個對象(連接對象、記錄集對象和指令對象)和一個參數,通過參數指定的值刪除記錄;
c)、給出刪除成功提示框。
<title>更改記錄</title> </head> <body background="../../../images/bj1.jpg"> <!-- #include virtual ="/adovbs.inc" --> <% '****************創建三個對象(連接對象、記錄集對象和指令對象)和一個參數********************* dim cnn,rst,cmd set 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 '設置ActiveConnection屬性,使Command對象與打開的連接相關聯 set cmd.ActiveConnection=cnn '指定傳送給數據提供者的命令文本是一條SQL語言。 cmd.CommandType=adCmdText cmd.CommandText="Delete from 員工基本情況表 where 員工姓名=? " '創建一個Parameter對象 set PrmName=cmd.CreateParameter("員工姓名",adVarChar,adParamInput,10) '將parameter對象添加到Parameters集合中。 cmd.Parameters.Append prmName '使用表單值設置參數值 PrmName.Value=Name '執行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)、使用一個列表框用以提交檢索的條件;
b)、創建三個對象(連接對象、記錄集對象和指令對象)和一個參數,使用 Parameter 對象的 Value 屬性將表單提交的值賦給參數;
c)、使用for 循環語句將檢索出的記錄集中的每一條記錄都通過表格顯示出來。
<% @ Language="VBScript" %> <html> <head> <title>使用參數化檢索記錄</title> </head background="../../../images/bj1.jpg> <body background="../../../images/bj1.jpg"> <!--*************開始創建表單*****************--> <div align="center"> <p>查詢各部門員工的基本情況 <form name="form1" method="post" action="Shousho.asp"> 選擇部門: <select size="1" name="department"> <option selected value="all">全部記錄</option> <option value="教務處">教務處</option> <option value="英語教研室">英語教研室</option> <option value="語文教研室">語文教研室</option> <option value="數學教研室">數學教研室</option> <option value="財務處">財務處</option> </select> <input type="submit" value="提交">||<a href="index.asp">返回主頁</a> </form> <!-- #include virtual ="/adovbs.inc" --> <% '****************創建三個對象(連接對象、記錄集對象和指令對象)和一個參數********************* dim cnn,rst,cmd,i set 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 '創建一個Parameter對象 set PrmDepartment=cmd.CreateParameter("所在部門",adVarChar,adParamInput,10) '將Parameter對象添加到Prmameters集合中 cmd.Parameters.Append prmDepartment '將用戶提交的所在部門名稱作為parameter對象的值 prmDepartment.Value=Request.Form("department") '指定傳送給數據提供者的命令文本是一條SQL語言。 cmd.CommandType=adCmdText '設置ActiveConnection屬性,使Command對象與打開的連接相關聯 set cmd.ActiveConnection=cnn '******如果沒有提交所在部門名稱,或選擇所有部門,則顯示所有記錄,否則按參數進行查詢。**************** if PrmDepartment.Value="" or Request.Form("department")="all" then cmd.CommandText="select * from 員工基本情況表" Else '便用參數化查詢語句作為命令文本 cmd.CommandText="select * from 員工基本情況表 where 所在部門=?" end if '向服務器發送SQL語句並返回一個記錄集 Set rst=cmd.Execute '-----------如果記錄集不存在,則顯示一條提示信息,否則,列出符合條件的記錄。---------- if rst.EOF then %> <p><b>沒有找到符合條件的記錄!</b></p> <% else %> <table border="1"> <tr> <!--用for 循環語句列出字段名。--> <% for i=0 to rst.Fields.Count-1 %> <th><%=rst(i).Name %></th> <% next %> <!--用while條件語句列出每條記錄--> <% while not rst.eof %> <tr> <% '用for循環語句列出某條記錄的各字段的值。 for i=0 to rst.Fields.Count-1 '如果字段值為空,則顯示一個空格 if IsNull(rst(i)) then %> <td> </td> <% else %> <td nowrap><% =rst(i) %></td> <% end if %> <% next %> </tr> <% rst.MoveNext wend %> </table> <% end if %> </div> </body> </html>
以上就是關於ASP基礎知識Command對象的入門教程,希望對大家的學習有所幫助,多多交流探討。