archives

阳江网站建设,阳江网页设计

Design by yj-star.com

  • 网站建设
  • 软件开发
  • 电子商务
  • 域名注册
  • 技术支持
  • 联系我们

 

文档类别

  • JSP
  • ASP.NET
  • Javascript
  • 测试管理
  • C++
  • 技术新闻
  • 行业新闻
  • 数据库开发
  • 架构和设计
  • 语言和工具

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

764

 
  一、HTML的集合属性
  首先,让我们来熟悉一下HTML的集合属性。在表单(FORM)数据或查询(Query)参数中,当提交的多个参数采用同一个名称时,这些参数值将构成一个集合,在ASP页面可以获取这些参数值或同名参数的个数。如在下面的页面(Set.HTM)中,6个复选框采用同一个参数名MyCheckBox,其值分别为1、2、3、4、5、6。
!-- Set.HTM --htmlheadtitle集合属性应用/title/headbodyp请选择要操作的项目,提交数据后,将会显示您选择的项目。form method="POST" action="set.asp"br1、input type="checkbox" name="MyCheckBox" value="1"br2、input type="checkbox" name="MyCheckBox" value="2"br3、input type="checkbox" name="MyCheckBox" value="3"br4、input type="checkbox" name="MyCheckBox" value="4"br5、input type="checkbox" name="MyCheckBox" value="5"br6、input type="checkbox" name="MyCheckBox" value="6"brinput type="submit" value="提交数据" name="B1"/form/body/html
  当客户端选择了要显示的项目后,下面的ASP页面(Set.ASP)给出客户端选择的项目个数及其值。
!-- Set.ASP --%@ LANGUAGE = VBScript %htmlheadtitle集合操作测试/title/headbody% 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:列出所有客户的客户名称 --
htmlheadtitle所有客户的客户名称/title/headbodyp align=centerfont 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%brinput type="checkbox" name="CustomerId" value="%=rsCustomers("CustomerId")%"a href="mailto:%=rsCustomers("CustomerEmail")%"%=rsCustomers("CustomerName")%/a%rsCustomers.MoveNextwendrsCustomers.closeset rsCustomers = nothingdbConnection.closeset dbConnection = nothing%brinput type="submit" value="给客户发送电子邮件" name="B1" style="font-family:宋体font-size:9pt"/form/body/html!-- SendMail.ASP:给所选择客户发电子邮件 --htmlheadtitle给所选择客户发电子邮件/title/headbodyp align=centerfont 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,1while 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 = 1myMail.MailFormat = 1 myMail.Body = "王发军向"rsCustomers("CustomerName")"问好!"myMail.Send Set myMail = Nothing %br给a href=""mailto:%=rsCustomers("CustomerEmail")%"%=rsCustomers("CustomerName")%/a发送电子邮件成功!%rsCustomers.MoveNextwendrsCustomers.closeset rsCustomers = nothingdbConnection.closeset dbConnection = nothing%br在所选择的客户发送电子邮件完毕!/body/html

阳江网站建设

 
 

© Copyright 2014 Star Tec. Company, All Rights Reserved.

call us:13326588347