知识:在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"
'获取所有客户的客户编号、客户名称
Set rsCustomers = Server.CreateObject("ADODB.RecordSet")
rsCustomers.Open "Select CustomerId,CustomerName,CustomerEmail From EmailList",_
dbConnection,1,3,1
'显示所有客户的客户名称
while not rsCustomers.eof
%>
<br><input type="checkbox" name="CustomerId" value="<%=rsCustomers("CustomerId")%>">
<a href="mailto:<%=rsCustomers("CustomerEmail")%>">
<%=rsCustomers("CustomerName")%></a>
<%rsCustomers.MoveNext
wend
rsCustomers.close
set rsCustomers = nothing
dbConnection.close
set dbConnection = nothing
%>
<br><input type="submit" value="给客户发送电子邮件" name="B1"
style="font-family:宋体;font-size:9pt">
</form></body></html>
<!-- SendMail.ASP:给所选择客户发电子邮件 -->
<html><head><title>给所选择客户发电子邮件</title></head><body>
<p align=center><font style="font-family:宋体;font-size:9pt">
正在给下面客户发送电子邮件
<%'建立与ACCESS数据库的连接
Set dbConnection = Server.CreateObject("ADODB.Connection")
dbConnection.open "Driver={Microsoft Access Driver (*.mdb)};"&_
"DBQ=C:\inetpub\wwwroot\test\Email.mdb"
'获取所选择客户的电子信箱
Set rsCustomers = Server.CreateObject("ADODB.RecordSet")
rsCustomers.Open "Select CustomerName,CustomerEmail From EmailList where CustomerId in ("&_
Request("CustomerId")&")",dbConnection,1,3,1
while not rsCustomers.eof
'给一个客户发电子邮件
Set myMail = CreateObject("CDONTS.NewMail")
myMail.From = "sales@test.com"
myMail.value("Reply-To") = "sales@test.com"
myMail.To = rsCustomers("CustomerEmail")
myMail.Subject = "来自王发军的新年问候"
myMail.BodyFormat = 1
myMail.MailFormat = 1
myMail.Body = "王发军向"&rsCustomers("CustomerName")&"问好!"
myMail.Send
Set myMail = Nothing
%>
<br>给<a href="<%=rsCustomers("CustomerName")%>'>mailto:<%=rsCustomers("CustomerEmail")%>"><%=rsCustomers("CustomerName")%></a>
发送电子邮件成功!
<%
rsCustomers.MoveNext
wend
rsCustomers.close
set rsCustomers = nothing
dbConnection.close
set dbConnection = nothing
%>
<br>在所选择的客户发送电子邮件完毕!
</body>
</html>

时间: 2024-08-01 22:03:29

知识:在ASP中用集合成批操作数据库的相关文章

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

集合|数据|数据库 一.HTML的集合属性 首先,让我们来熟悉一下HTML的集合属性.在表单(FORM)数据或查询(Query)参数中,当提交的多个参数采用同一个名称时,这些参数值将构成一个集合,在ASP页面可以获取这些参数值或同名参数的个数.如在下面的页面(Set.HTM)中,6个复选框采用同一个参数名MyCheckBox,其值分别为1.2.3.4.5.6.<!-- Set.HTM --><html><head><title>集合属性应用</titl

在ASP.NET中利用VWD操作数据库简介

asp.net|数据|数据库 VWD2005中包含了SQL Server 2005 Express Edition,它是SQL Server 2005的一个免费版本,它的目标用户是那些希望用简单的数据库解决方案来建立应用程序的非专业的或狂热的开发者.由于SQL Server Express支持完整的SQL Server编程模型,例如SQLCLR.T-SQL.存储过程.视图.触发器和XML数据类型,你可以使用SQL Server Express来了解这些技术,并且确保自己的应用程序可以运行在更高层

ASP.NET[C#]的ACCESS数据库操作类

access|asp.net|数据|数据库 ASP.NET[C#]的ACCESS数据库操作类       //网上很多都是操作SQL SER 的,整理了一下,不是很完善,但不影响使用,呵呵--       //private string datapatch = ConfigurationSettings.AppSettings["acessconn"];//数据库地址                                            private string

ASP操作数据库的类,让数据操作变得简单

对于ASP的使用者来说,在数据库操作上越简单,就有更多的时间去考虑逻辑上和应用上的代码,效率也会更高.今天俺在这里给大家提供一种数据库操作的思路,这些代码是俺在长期的ASP应用中不断完成和修正的,也已经用它完成了很多项目了,应该说直接拿去用是没有问题的.当然本人能力也有限,希望大家一起来讨论. 说明:此帖代码均是VBScript版本.另外最好你对手写ASP已经有一定的基础. 先简单介绍一下俺这个类的一些特点: 1.可同时操作多个不同类型的数据库.2.完全不用考虑数据类型的差别,再也不用想字符型字

Asp+Sql 个人总结对数据库的各种操作

asp+|数据|数据库 放松生活网Relaxlife.netAsp+Sql 个人总结对数据库的各种操作 /************************************************************************        1,---------Asp+Sql 个人总结对数据库的各种操作**        如果需要更多代码请到http://www.relaxlife.net 感觉好帮我顶**         ***********************

ASP中使用SQL语句操作数据库

数据|数据库|语句 用ASP操作数据库时,很多人都使用记录集,但我觉得用SQL语句更好些,于是就写了这篇文章,希望对你有帮助. <%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''以下段为连接数据库和断开连接(数据库为Access格式,采用DSN来连接)''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''sub conn

ASP操作数据库的类_ASP CLASS类

今天俺在这裡给大家提供一种数据库操作的思路,这些代码是俺在长期的ASP应用中不断完成和修正的,也已经用它完成了很多项目了,应该说直接拿去用是没有问题的.当然本人能力也有限,希望大家一起来讨论. 说明:此帖代码均是VBScript版本.另外最好你对手写ASP已经有一定的基础. 先简单介绍一下俺这个类的一些特点: 可同时操作多个不同类型的数据库. 完全不用考虑数据类型的差别,再也不用想字符型字段加不加单引号. 调用非常简单,对数据库的主要操作一般只需要一行代码. 支持mssql事务回滚. 可自动生成

ASP.NET中操作数据库的基本步骤分享_实用技巧

1.ASP.NET操作数据库的基本步骤: ASP.NET数据操作常用方法: a. ExecuteReader() 返回的是一个SqlDataReader对象或OleDbDataReader对象,每次返回或操作指引一个记录保存在服务器的内存中. 相对 DataSet而言,具体较快的访问能力,通常用来进行查询操作. b.ExecuteNonQuery() c.ExecuteScalar()返回的是Object类型.如果执行的是SELECT,则返回结果是查询后的第一行第一列 返回数据库中影响的行数,进

ASP操作数据库的类

今天俺在这裡给大家提供一种数据库操作的思路,这些代码是俺在长期的ASP应用中不断完成和修正的,也已经用它完成了很多项目了,应该说直接拿去用是没有问题的.当然本人能力也有限,希望大家一起来讨论. 说明:此帖代码均是VBScript版本.另外最好你对手写ASP已经有一定的基础. 先简单介绍一下俺这个类的一些特点: 可同时操作多个不同类型的数据库. 完全不用考虑数据类型的差别,再也不用想字符型字段加不加单引号. 调用非常简单,对数据库的主要操作一般只需要一行代码. 支持mssql事务回滚. 可自动生成