当前位置: 首页 > 图文教程 > 网络编程 > ASP > 在ASP中用集合成批操作数据库

ASP
Adodb.Command 平时很少注意到的一个参数
Asp.Net控件加载错误的解决方法
远程连接access数据库的方法
创建具有JScript的HTML的XMLHTTP
在Asp中如何快速优化分页的技巧
用VB生成DLL封装ASP代码,连接数据库
RS.OPEN SQL,CONN,A,B 全接触
利用adodb.stream直接下载任何后缀的文件(防盗链)
用ASP编程控制在IIS建立Web站点的程序代码
使用VBScript操作Html复选框(CheckBox)控件
把文章内容中涉及到的图片自动保存到本地服务器
两个不同数据库表的分页显示解决方案
使用组件封装数据库操作(一)
使用组件封装数据库操作(二)
如何在pb中创建COM组件,并在asp中调用并返回结果集?
用ASP和Microsoft.XMLDOM分析远程XML文件
浅谈无刷新取得远程数据技术
将ASP纪录集输出成n列的的表格形式显示的方法
在ASP中通过oo4o连接Oracle数据库的例子
Server Application Error详细解决办法

ASP 中的 在ASP中用集合成批操作数据库


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 66 ::
收藏到网摘: n/a

  在ASP中用集合成批操作数据库

  我们知道,一般的关系数据库(如SQL Server、Oracle、Access等)中的查询操作是支持集合操作的,
例如可以用“Update ATable Set Field1 = AValue where Field2 in (Value21,Value22)”来完成对数据
库的成批更新操作。我们可以充分利用数据库的这种集合特性来提高ASP页面操作数据库的效率。如我们
可以在页面上列出多个记录,让用户选择要操作的记录,然后在用户确定操作后进行成批操作,这与一个记
录操作一次的方法相比效率明显要高的多了。

一、HTML的集合属性
  首先,让我们来熟悉一下HTML的集合属性。在表单(FORM)数据或查询(Query)参数中,当
提交的多个参数采用同一个名称时,这些参数值将构成一个集合,在ASP页面可以获取这些参数值或
同名参数的个数。如在下面的页面(Set.HTM)中,6个复选框采用同一个参数名MyCheckBox,其值分别
为1、2、3、4、5、6。
<!-- Set.HTM -->
<html><head><title>集合属性应用</title></head><body>
<p>请选择要操作的项目,提交数据后,将会显示您选择的项目。
<form method="POST" action="set.asp">
  <br>1、<input type="checkbox" name="MyCheckBox" value="1">
  <br>2、<input type="checkbox" name="MyCheckBox" value="2">
  <br>3、<input type="checkbox" name="MyCheckBox" value="3">
  <br>4、<input type="checkbox" name="MyCheckBox" value="4">
  <br>5、<input type="checkbox" name="MyCheckBox" value="5">
  <br>6、<input type="checkbox" name="MyCheckBox" value="6">
  <br><input type="submit" value="提交数据" name="B1">
</form></body></html>
  当客户端选择了要显示的项目后,下面的ASP页面(Set.ASP)给出客户端选择的项目个数及其值。
<!-- Set.ASP -->
<%@ LANGUAGE = VBScript %>
<html><head><title>集合操作测试</title></head>
<body>
<%
Response.Write "<br>您一共选择了"&request("MyCheckBox").count&"项,"
Response.Write "<br>您选择的项目有:"&request("MyCheckBox")
%>
</body></html>
如当客户端选择了第二、三、五项并提交数据后,将会看到如下结果:
您一共选择了3项,
您选择的项目有:2, 3, 5
应该注意到,“2, 3, 5”的形式与SQL语句要求的形式是一致的,我们可以直接或间接地利用这种
形式的结果,如 "Select * from ATable where AFiled in(" & request("MyCheckBox") & ")"的实际
SQL查询语句为“Select * from ATable where AFiled in(2, 3, 5)”。

二、HTML的集合属性的应用
  下面我们结合一个实际的例子,讨论一下如何在ASP页面中利用HTML的集合属性来成批操作
数据库。现在我们有一个记录客户电子信箱的ACCESS数据库EMail,其中有一个数据表EmailList,
包含CustomerId、CustomerName、CustomerEmail三个字段,分别表示客户编号、客户名称、客户电子信箱。
在ASP页面SelectId.ASP中,我们采用CheckBox列出所有客户的客户名称(各个CheckBox的值为对应的
客户编号),让用户选择给哪些客户发送电子邮件。当用户选择了客户并提交数据后,SendMail.ASP将检
索到这些客户的电子信箱,并给这些客户发送电子邮件。具体的信息请参见下面ASP程序代码和注释信息。

<!-- SelectId.ASP:列出所有客户的客户名称 -->
<html><head><title>所有客户的客户名称</title></head><body>
<p align=center><font style="font-family:宋体;font-size:9pt">
请选择要给哪些客户发送“新年问候”的电子邮件
<form method="POST" action="SendMail.asp">
<%'建立与ACCESS数据库的连接
Set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.open "Driver={Microsoft Access Driver (*.mdb)};"&_
"DBQ=C:\inetpub\wwwroot\test\Email.mdb"
'获取所有客户的客户编号、客户名称