《PHP實(shí)戰(zhàn):ASP基礎(chǔ)知識(shí)Command對(duì)象講解》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):ASP基礎(chǔ)知識(shí)Command對(duì)象講解,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
PHP編程Coonamd 對(duì)象定義了將對(duì)數(shù)據(jù)源執(zhí)行的命令,可以用于查詢數(shù)據(jù)庫(kù)表并返回一個(gè)記錄集,也可以用于對(duì)數(shù)據(jù)庫(kù)表進(jìn)行添加、更改和刪除操作.
一、使用Command 對(duì)象的步驟:
當(dāng)在 ASP 頁(yè)面中使用 Command 對(duì)象處理數(shù)據(jù)時(shí),應(yīng)首先設(shè)置命令類型、命令文本以及相關(guān)的活動(dòng)數(shù)據(jù)庫(kù)連接等,并通過 Parameter 對(duì)象傳遞命令參數(shù),然后通過調(diào)用 Execute 辦法來(lái)執(zhí)行 SQL 語(yǔ)句或調(diào)用存儲(chǔ)過程,以完成數(shù)據(jù)庫(kù)記錄的檢索、添加、更改和刪除任務(wù).其步驟如下:
1、使用 ActiveCommand 屬性設(shè)置相關(guān)的數(shù)據(jù)庫(kù)連接;
2、使用 CommandType 屬性設(shè)置命令類型;
3、使用 CommandText 屬性定義命令(例如SQL語(yǔ)句)的可執(zhí)行文本;
4、使用 CommandTimeout 屬性設(shè)置命令超時(shí)時(shí)間;
5、使用 Execute 辦法執(zhí)行命令.
二、Command 對(duì)象的屬性:
PHP編程
PHP編程三、Command 對(duì)象的辦法----Execute
該辦法執(zhí)行在 CommandText 屬性中指定的查詢.語(yǔ)法格式分為以下兩種形式.
1、對(duì)于按行返回的 Command :
Set recordset=command.Execute(RecordsAffected,Parameters,Options)
2、對(duì)于不按行返回的 Command :
command.Execute RecordsAffected,Parameters,Options
其中參數(shù) RecordsAffected 為提供程序返回操作所影響的記錄數(shù)錄.Rarameters 為使用 SQL 語(yǔ)句傳送的參數(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 集合的步驟
PHP編程
PHP編程五、Command 對(duì)象的應(yīng)用實(shí)例
1、這是一個(gè)簡(jiǎn)單的員工基本情況管理系統(tǒng),其功能有:1)、添加員工資料;2)、更改員工資料;3)、刪除員工資料,檢索員工資料.它包含著七個(gè)頁(yè)面和一個(gè)數(shù)據(jù)庫(kù).分別為:
1)、主頁(yè)面:index.asp
2)、添加數(shù)據(jù)頁(yè)面:add.htm
3)、保存添加數(shù)據(jù)頁(yè)面:add.asp
4)、更改數(shù)據(jù)頁(yè)面:Update.asp
5)、保存更改數(shù)據(jù)頁(yè)面:Update1.asp
6)、刪除記錄頁(yè)面:Detele.asp
7)、檢索員工資料頁(yè)面:shousho.asp
8)、數(shù)據(jù)庫(kù):RSGL.mdb.用到該數(shù)據(jù)庫(kù)中的”員工基本情況表“.
2、各頁(yè)面的代碼如下:
1)、主頁(yè)面:index.asp.該頁(yè)面的功能有:
a)、創(chuàng)建兩個(gè)對(duì)象,Connectiion對(duì)象和Recordset對(duì)象,其目的是連接數(shù)據(jù)庫(kù)和返回一個(gè)記錄集;
b)、創(chuàng)建一個(gè)表格,使do while循環(huán)語(yǔ)句將各條記錄在表格中顯示出來(lái);
c)、創(chuàng)建三個(gè)超連接,一個(gè)用以連接添加數(shù)據(jù)頁(yè)面,另一個(gè)通過指定的員工姓名連接到更改數(shù)據(jù)頁(yè)面,還有一個(gè)通過指定的員工姓名連接到刪除頁(yè)面.
PHP編程
<% @ Language="VBScript" %>
<html>
<head><title>員工基本情況管理系統(tǒng)</title></head>
<body background="../../../images/bj1.jpg">
<%
'****************創(chuàng)建兩個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象)*********************
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)
%>
<!--************創(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)語(yǔ)句將各條記錄顯示出來(lái).
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>
PHP編程2)、添加數(shù)據(jù)頁(yè)面:add.htm .
PHP編程本頁(yè)面由一個(gè)表單組成,其功能是向保存添加數(shù)據(jù)頁(yè)面(add.asp)提交數(shù)據(jù).
PHP編程
<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>
PHP編程3)、保存添加數(shù)據(jù)頁(yè)面:add.asp.
PHP編程該頁(yè)面的功能有:
PHP編程a)、使用Request對(duì)象獲取從add.htm頁(yè)面提交的值;
PHP編程b)、創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和五個(gè)參數(shù),通過調(diào)用參數(shù)執(zhí)行INSERT插入命令.
PHP編程
<% @ 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,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
'設(shè)置ActiveConnection屬性,使Command對(duì)象與打開的連接相關(guān)聯(lián)
set cmd.ActiveConnection=cnn
'指定傳送給數(shù)據(jù)提供者的命令文本是一條SQL語(yǔ)言.
cmd.CommandType=adCmdText
cmd.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 prmName
cmd.Parameters.Append prmDepartment
Cmd.Parameters.Append prmAddr
Cmd.Parameters.Append prmTel
Cmd.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">返回主頁(yè)</a>
</center>
</body>
</html>
PHP編程
4)、更改數(shù)據(jù)頁(yè)面:Update.asp.該頁(yè)面的功能有:
PHP編程a)、創(chuàng)建兩個(gè)對(duì)象,Connectiion對(duì)象和Recordset對(duì)象,其目的是連接數(shù)據(jù)庫(kù)和返回一個(gè)記錄集;
PHP編程b)、創(chuàng)建一個(gè)表單,其目的是提交更改過的數(shù)據(jù).
PHP編程
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">
<!--*****************創(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>
PHP編程5)、保存更改數(shù)據(jù)頁(yè)面:Update2.asp.
PHP編程該頁(yè)面的功能有:
PHP編程a)、使用Request對(duì)象獲取從Update.asp頁(yè)面提交的值;
PHP編程b)、創(chuàng)建二個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象);
PHP編程c)、通過表格顯示更改后的記錄.
PHP編程
<% @ Language="VBScript" %>
<%
'*****************從提交表單中提取數(shù)值***************************
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" -->
<%
'****************創(chuàng)建二個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象)*********************
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">返回首頁(yè)</a>
</center>
</body>
</html>
PHP編程
6)、刪除數(shù)據(jù)頁(yè)面:Detele.asp.
PHP編程a)、使用Request對(duì)象獲取要?jiǎng)h除的員工姓名;
PHP編程b)、創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和一個(gè)參數(shù),通過參數(shù)指定的值刪除記錄;
PHP編程c)、給出刪除成功提示框.
PHP編程
<title>更改記錄</title>
</head>
<body background="../../../images/bj1.jpg">
<!-- #include virtual ="/adovbs.inc" -->
<%
'****************創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和一個(gè)參數(shù)*********************
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
'設(shè)置ActiveConnection屬性,使Command對(duì)象與打開的連接相關(guān)聯(lián)
set cmd.ActiveConnection=cnn
'指定傳送給數(shù)據(jù)提供者的命令文本是一條SQL語(yǔ)言.
cmd.CommandType=adCmdText
cmd.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">返回主頁(yè)</a>
</center>
</body>
</html>
PHP編程
7)、檢索員工資料頁(yè)面 :shousho.asp.
PHP編程a)、使用一個(gè)列表框用以提交檢索的條件;
PHP編程b)、創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和一個(gè)參數(shù),使用 Parameter 對(duì)象的 Value 屬性將表單提交的值賦給參數(shù);
PHP編程c)、使用for 循環(huán)語(yǔ)句將檢索出的記錄集中的每一條記錄都通過表格顯示出來(lái).
PHP編程
<% @ 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="英語(yǔ)教研室">英語(yǔ)教研室</option>
<option value="語(yǔ)文教研室">語(yǔ)文教研室</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">返回主頁(yè)</a>
</form>
<!-- #include virtual ="/adovbs.inc" -->
<%
'****************創(chuàng)建三個(gè)對(duì)象(連接對(duì)象、記錄集對(duì)象和指令對(duì)象)和一個(gè)參數(shù)*********************
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
'創(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語(yǔ)言.
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" then
cmd.CommandText="select * from 員工基本情況表"
Else
'便用參數(shù)化查詢語(yǔ)句作為命令文本
cmd.CommandText="select * from 員工基本情況表 where 所在部門=?"
end if
'向服務(wù)器發(fā)送SQL語(yǔ)句并返回一個(gè)記錄集
Set rst=cmd.Execute
'-----------如果記錄集不存在,則顯示一條提示信息,否則,列出符合條件的記錄.----------
if rst.EOF then
%>
<p><b>沒有找到符合條件的記錄!</b></p>
<% else %>
<table border="1">
<tr>
<!--用for 循環(huán)語(yǔ)句列出字段名.-->
<% for i=0 to rst.Fields.Count-1 %>
<th><%=rst(i).Name %></th>
<% next %>
<!--用while條件語(yǔ)句列出每條記錄-->
<% while not rst.eof %>
<tr>
<%
'用for循環(huán)語(yǔ)句列出某條記錄的各字段的值.
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.MoveNext
wend
%>
</table>
<% end if %>
</div>
</body>
</html>
PHP編程以上就是關(guān)于ASP基礎(chǔ)知識(shí)Command對(duì)象的入門教程,希望對(duì)大家的學(xué)習(xí)有所贊助,多多交流探討.
歡迎參與《PHP實(shí)戰(zhàn):ASP基礎(chǔ)知識(shí)Command對(duì)象講解》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/8648.html