分享
 
 
 

ASP入门基础教程-Command对象

王朝asp·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

Coonamd 对象定义了将对数据源执行的命令,可以用于查询数据库表并返回一个记录集,也可以用于对数据库表进行添加、更改和删除操作。

一、使用Command 对象的步骤:

当在 ASP 页面中使用 Command 对象处理数据时,应首先设置命令类型、命令文本以及相关的活动数据库连接等,并通过 Parameter 对象传递命令参数,然后通过调用 Execute 方法来执行 SQL 语句或调用存储过程,以完成数据库记录的检索、添加、更改和删除任务。其步骤如下:

1、使用 ActiveCommand 属性设置相关的数据库连接;

2、使用 CommandType 属性设置命令类型;

3、使用 CommandText 属性定义命令(例如SQL语句)的可执行文本;

4、使用 CommandTimeout 属性设置命令超时时间;

5、使用 Execute 方法执行命令。

二、Command 对象的属性:属性

描述/ 格式 / 注释

ActiveConnection

1、该属性表明指定的 Command 对象当前所属哪一个 Connection 对象。

2、该属性设置和返回包含了定义连接或 Connection 对象的字符串。

3、该属性为可读可写。

Setcmd.ActiveConnection=cnn

1、cmd :已定义的 Command 对象;2、cnn :要连接的 Connection 对象。

CommandType

该属性指定命令类型以优化性能,该属性可以设置和返回以下某个值:

1、adCmdText :表示处理的是一个 SQL 语句;

2、adCmdTable :表示处理的是一个表;

3、adCmdStoredProc :表示处理的是一个存储过程;

4、adCmdUnknow :表示不能识别,它是默认值。

如:cmd.CommandType=adCmdText

1、cmd :已定义的 Command 对象;2、adCmdText :表示处理的是一个 SQL 语句。

CommandText

该属性定义了将要发送给提供程序的命令文本。它可以设置和返回包含提供程序命令的字符串值,例如:SQL 查询语句、表名称或存储的过程调用。

cmd.CommandText=SQLString

1、cmd :已定义的 Command 对象;2、SQL 查询字符串(即一条 SQL 语句)。

CommandTimeout

该属性指定在终止尝试或产生错误之前执行命令期间需等待的时间(单位为秒)。默认值为30秒。

cmd.CommadnTimeout=N

N:需要设置的秒数。

三、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 集合的步骤 步骤

描述 / 格式 / 注释

1、

创建 Parameter 对象

使用 CreateParameter 方法可以用指定的名称、类型、方向、大小和值创建新的 Parameter 对象。

Set parameter=command.CreateParameter(Name,Type,Direction,Size,Value)

其中参数Name 指定 Parameter 对象的名称。

Type 指定 Parameter 对象的数据类型,可以使用符号常量为其赋值。如:

* adDate :表示日期值;

* adInteger :表示4字节的带符号整数;

* adDecimal :具有固定精度和范围的精确数字值;

* adDouble :双精度浮点值;

* adVarChar :表示字符串值。

Direction 参数指定 Parameter 对象类型,可以设置或返回以下某个值:

* adParamInput :指定为输入参数(默认值);

* adParamOutput :指定为输出参数;

* adParamInputOutput :指定为输入和输出参数;

* adParamReturnValue :指定为返回值。

* Size 指定参数值最大长度,能字符或字节数为单位。

* Value 指定 Parameter 对象的值。

2、

将Parameter对象添加到 parameters 集合

使用 Addend 方法将创建好的 Parameter 对象添加到 Parameters 集合中。

comman.Parameters.Addend object

参数指定 Parameter 对象的名称。

3、

给参数赋值

使用 Parameter 对象的 Value 对参数赋值。

PrmName.Value=ParameterValue

参数 ParameterValue 为要赋给参数的值。

4、

删除 Parameter 对象

使用 Parameter 方法可以将 Parameter 对象从 Parameters 集合中删除。

Parameter.Delete Index

Index 参数指定要删除的 Parameter 对象的名称,或该对象在 Parameters 集合中的位置索引值。

五、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,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)%><!--************创建一个表格,用以显示数据库中的各条记录***********--><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.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)、添加数据页面: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,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'设置ActiveConnection属性,使Command对象与打开的连接相关联set cmd.ActiveConnection=cnn'指定传送给数据提供者的命令文本是一条SQL语言。cmd.CommandType=adCmdTextcmd.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 prmNamecmd.Parameters.Append prmDepartmentCmd.Parameters.Append prmAddrCmd.Parameters.Append prmTelCmd.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">&nbsp;<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.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"><!--*****************创建一个表单****************************************--><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,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" --><%'****************创建二个对象(连接对象、记录集对象)*********************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)、删除数据页面:Detele.asp。 a)、使用Request对象获取要删除的员工姓名;b)、创建三个对象(连接对象、记录集对象和指令对象)和一个参数,通过参数指定的值删除记录;c)、给出删除成功提示框。<title>更改记录</title></head><body background="../../../images/bj1.jpg"><!-- #include virtual ="/adovbs.inc" --><%'****************创建三个对象(连接对象、记录集对象和指令对象)和一个参数*********************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'设置ActiveConnection属性,使Command对象与打开的连接相关联set cmd.ActiveConnection=cnn'指定传送给数据提供者的命令文本是一条SQL语言。cmd.CommandType=adCmdTextcmd.CommandText="Delete from 员工基本情况表 where 员工姓名=? "'创建一个Parameter对象set PrmName=cmd.CreateParameter("员工姓名",adVarChar,adParamInput,10)'将parameter对象添加到Parameters集合中。cmd.Parameters.Append prmName'使用表单值设置参数值PrmName.Value=Name'执行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)、创建三个对象(连接对象、记录集对象和指令对象)和一个参数,使用 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,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'创建一个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" thencmd.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>&nbsp;</td><% else %><td nowrap><% =rst(i) %></td><% end if %><% next %></tr><%rst.MoveNextwend%></table><% end if %></div></body></html>

查看全套"ASP入门基础"教程>>>>>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有