Coonamd 對象定義了將對數(shù)據(jù)源執(zhí)行的命令,可以用于查詢數(shù)據(jù)庫表并返回一個記錄集,也可以用于對數(shù)據(jù)庫表進行添加、更改和刪除操作。
一、使用Command 對象的步驟:
當在 ASP 頁面中使用 Command 對象處理數(shù)據(jù)時,應首先設置命令類型、命令文本以及相關的活動數(shù)據(jù)庫連接等,并通過 Parameter 對象傳遞命令參數(shù),然后通過調(diào)用 Execute 方法來執(zhí)行 SQL 語句或調(diào)用存儲過程,以完成數(shù)據(jù)庫記錄的檢索、添加、更改和刪除任務。其步驟如下:
1、使用 ActiveCommand 屬性設置相關的數(shù)據(jù)庫連接;
2、使用 CommandType 屬性設置命令類型;
3、使用 CommandText 屬性定義命令(例如SQL語句)的可執(zhí)行文本;
4、使用 CommandTimeout 屬性設置命令超時時間;
5、使用 Execute 方法執(zhí)行命令。
二、Command 對象的屬性:
三、Command 對象的方法----Execute
該方法執(zhí)行在 CommandText 屬性中指定的查詢。語法格式分為以下兩種形式。
1、對于按行返回的 Command :
Set recordset=command.Execute(RecordsAffected,Parameters,Options)
2、對于不按行返回的 Command :
command.Execute RecordsAffected,Parameters,Options
其中參數(shù) RecordsAffected 為提供程序返回操作所影響的記錄數(shù)錄。Rarameters 為使用 SQL 語句傳送的參數(shù)值。Options 指示提供程序如何對 Command 對象的 CommandText 屬性賦值。
四、使用 Parameters 集合
Command 對象具有由 Parameter 對象組成的 Parameters 集合,Parameter 對象代表與基于參數(shù)化查詢或存儲過程的 Command 對象相關聯(lián)的參數(shù)或自變量。通過創(chuàng)建 Parameter 對象并添加到 Parameter 集合中,可以向參數(shù)化查詢傳遞所需要的數(shù)據(jù)。使用 Parameter 集合的步驟如表下:
使用Parameter 集合的步驟
五、Command 對象的應用實例
1、這是一個簡單的員工基本情況管理系統(tǒng),其功能有:1)、添加員工資料;2)、更改員工資料;3)、刪除員工資料,檢索員工資料。它包含著七個頁面和一個數(shù)據(jù)庫。分別為:
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ù)庫:RSGL.mdb.用到該數(shù)據(jù)庫中的”員工基本情況表“。
2、各頁面的代碼如下:
1)、主頁面:index.asp。該頁面的功能有:
a)、創(chuàng)建兩個對象,Connectiion對象和Recordset對象,其目的是連接數(shù)據(jù)庫和返回一個記錄集;
b)、創(chuàng)建一個表格,使do while循環(huán)語句將各條記錄在表格中顯示出來;
c)、創(chuàng)建三個超連接,一個用以連接添加數(shù)據(jù)頁面,另一個通過指定的員工姓名連接到更改數(shù)據(jù)頁面,還有一個通過指定的員工姓名連接到刪除頁面。
% @ Language="VBScript" %>
html>
head>title>員工基本情況管理系統(tǒng)/title>/head>
body background="../../../images/bj1.jpg">
%
'****************創(chuàng)建兩個對象(連接對象、記錄集對象)*********************
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)建一個表格,用以顯示數(shù)據(jù)庫中的各條記錄***********-->
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.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)、添加數(shù)據(jù)頁面:add.htm 。
本頁面由一個表單組成,其功能是向保存添加數(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對象獲取從add.htm頁面提交的值;
b)、創(chuàng)建三個對象(連接對象、記錄集對象和指令對象)和五個參數(shù),通過調(diào)用參數(shù)執(zhí)行INSERT插入命令。
% @ Language="VBScript" %>
html>
head>
title>添加記錄/title>
/head>
body background="../../../images/bj1.jpg">
!-- #include virtual ="/adovbs.inc" -->
%
'****************創(chuàng)建三個對象(連接對象、記錄集對象和指令對象)和五個參數(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
'設置ActiveConnection屬性,使Command對象與打開的連接相關聯(lián)
set cmd.ActiveConnection=cnn
'指定傳送給數(shù)據(jù)提供者的命令文本是一條SQL語言。
cmd.CommandType=adCmdText
cmd.CommandText="INSERT INTO 員工基本情況表(員工姓名,所在部門,家庭住址,家庭電話,Email) values(?,?,?,?,?)"
'創(chuàng)建五個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
'使用表單值設置參數(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">
nbsp;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)建兩個對象,Connectiion對象和Recordset對象,其目的是連接數(shù)據(jù)庫和返回一個記錄集;
b)、創(chuàng)建一個表單,其目的是提交更改過的數(shù)據(jù)。
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)建一個表單****************************************-->
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對象獲取從Update.asp頁面提交的值;
b)、創(chuàng)建二個對象(連接對象、記錄集對象);
c)、通過表格顯示更改后的記錄。
% @ 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)建二個對象(連接對象、記錄集對象)*********************
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)、刪除數(shù)據(jù)頁面:Detele.asp。
a)、使用Request對象獲取要刪除的員工姓名;
b)、創(chuàng)建三個對象(連接對象、記錄集對象和指令對象)和一個參數(shù),通過參數(shù)指定的值刪除記錄;
c)、給出刪除成功提示框。
title>更改記錄/title>
/head>
body background="../../../images/bj1.jpg">
!-- #include virtual ="/adovbs.inc" -->
%
'****************創(chuàng)建三個對象(連接對象、記錄集對象和指令對象)和一個參數(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
'設置ActiveConnection屬性,使Command對象與打開的連接相關聯(lián)
set cmd.ActiveConnection=cnn
'指定傳送給數(shù)據(jù)提供者的命令文本是一條SQL語言。
cmd.CommandType=adCmdText
cmd.CommandText="Delete from 員工基本情況表 where 員工姓名=? "
'創(chuàng)建一個Parameter對象
set PrmName=cmd.CreateParameter("員工姓名",adVarChar,adParamInput,10)
'將parameter對象添加到Parameters集合中。
cmd.Parameters.Append prmName
'使用表單值設置參數(shù)值
PrmName.Value=Name
'執(zhí)行Delete刪除命令
cmd.Execute
%>
nbsp;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)、創(chuàng)建三個對象(連接對象、記錄集對象和指令對象)和一個參數(shù),使用 Parameter 對象的 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="教務處">教務處/option>
option value="英語教研室">英語教研室/option>
option value="語文教研室">語文教研室/option>
option value="數(shù)學教研室">數(shù)學教研室/option>
option value="財務處">財務處/option>
/select>
input type="submit" value="提交">||a href="index.asp">返回主頁/a>
/form>
!-- #include virtual ="/adovbs.inc" -->
%
'****************創(chuàng)建三個對象(連接對象、記錄集對象和指令對象)和一個參數(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)建一個Parameter對象
set PrmDepartment=cmd.CreateParameter("所在部門",adVarChar,adParamInput,10)
'將Parameter對象添加到Prmameters集合中
cmd.Parameters.Append prmDepartment
'將用戶提交的所在部門名稱作為parameter對象的值
prmDepartment.Value=Request.Form("department")
'指定傳送給數(shù)據(jù)提供者的命令文本是一條SQL語言。
cmd.CommandType=adCmdText
'設置ActiveConnection屬性,使Command對象與打開的連接相關聯(lián)
set cmd.ActiveConnection=cnn
'******如果沒有提交所在部門名稱,或選擇所有部門,則顯示所有記錄,否則按參數(shù)進行查詢。****************
if PrmDepartment.Value="" or Request.Form("department")="all" then
cmd.CommandText="select * from 員工基本情況表"
Else
'便用參數(shù)化查詢語句作為命令文本
cmd.CommandText="select * from 員工基本情況表 where 所在部門=?"
end if
'向服務器發(fā)送SQL語句并返回一個記錄集
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
'如果字段值為空,則顯示一個空格
if IsNull(rst(i)) then
%>
td>nbsp;/td>
% else %>
td nowrap>% =rst(i) %>/td>
% end if %>
% next %>
/tr>
%
rst.MoveNext
wend
%>
/table>
% end if %>
/div>
/body>
/html>
以上就是關于ASP基礎知識Command對象的入門教程,希望對大家的學習有所幫助,多多交流探討。
您可能感興趣的文章:- ASP.net基礎知識之常見錯誤分析
- ASP.NET 2.0 程序安全的基礎知識
- 服務器XMLHTTP(Server XMLHTTP in ASP)基礎知識
- ASP.NET母版頁基礎知識介紹
- ASP基礎知識VBScript基本元素講解
- ASP基礎入門第二篇(ASP基礎知識)
- ASP新手必備的基礎知識