ASP基础知识Command对象讲解


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对象的入门教程,希望对大家的学习有所帮助,多多交流探讨 。