(一)数据库的选择: 因为: |
(3)关键部分:建立与数据库的联系并将表单中收集到的信息添加到ACCESS数据库中。
ASP代码放在〈%和%>之间。
adddatabase.asp程序内容:
<%
CompanyName = Request("CompanyName")
CName = Request("CName")
City = Request("City")
Tel = Request("Tel")
%>
If CompanyName = "" Or CName = "" Or City = "" Or Tel = "" Then
Response.Write "<html><body><center><font size=5>请将资料填写完整。</font></center></body></html>"
'Response.Redirect "error.htm"
Response.End
End If
这里是检测各个项目是否输入了东西,如果为空则不往下继续执行,显示错误信息。注意:你可以使用两种方法。我都列出了。
方法一:使用Response.Write方法写一个出错页面,类似于java scripts的document.write写法,只是ASP使用Response.write罢了。
方法二:使用Response.Redirect方法导向出错页面error.htm。我在方法一的代码前加上单引号表示注释。('ASP中表示注释用单引号')。
<%
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>
程序解释:
(1)建立Connection对象:dbconnection,建立一个连接(Connection)是数据库存取的开始。我们使用ASP的内建对象方法Server.Createobject建立与数据库的连接。ADODB是ASP的数据库存取组件,不必担心只要有ASP就有它了,是内置的。
(2)使用dbconnection.open方法打开数据库customer.mdb。driver参数语法: driver={Microsoft Access Driver (*.mdb)}必须这么写。告诉系统使用ACCESS ODBC驱动处理。dbq参数用来指定打开的数据库文件,它必须是完整的路径。例如"c:\inetpub\wwwroot\customer\customer.mdb",我们使用Server.MapPath的方法取得数据库的完整路径。
<%
Set rs = Server.CreateObject("ADODB.Recordset")
%>
建立Recordset对象rs。Connection仅仅是建立了与数据库间的连接,要存取数据还应该再建立Recordset对象。
rs.Open "客户", dbconnection, adOpenDynamic, 3
打开数据库中的表"客户"(客户是表名)。 语法:
rs.open 数据表名或SQL指令,已经建立的Connection对象(这里是dbconnection), 锁定类型
<%
rs.AddNew
rs("公司名称") = CompanyName
rs("联络人姓名") = CName
rs("所在城市") = City
rs("电话号码") = Tel
rs.Update
%>
用AddNew向数据库请求添加数据。最后用Update写入。注意:等号右侧的变量保存着用Request取得的表单数据。双引号内的就是数据库的字段,应该与数据库的一致啊。否则会出错的。这样变量内的数据就写入了数据库对应的字段内了。
Response.Write "<html><body><center><font size=5>祝贺,您的数据已经添加进数据库了!<p>"
Response.Write "<a href='viewdatabase.asp'>查看数据</a>"
Response.Write "</font></center></body></html>"
'写入成功后显示祝贺信息并建立查看数据库记录的连接。
%>
(4)显示/查看数据库记录:
<%
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
'建立与数据库的连接,与上同。
SQL="select * from 客户 Order By 时间 DESC"
SET CustomerList=dbconnection.EXECUTE(SQL)
%>
<html>
<body>
<FONT SIZE="5"><center>数据库记录</center></FONT>
<CENTER>
<TABLE BORDER=1>
<tr>
<td>编号</td>
<td>公司名称</td>
<td>联络人姓名</td>
<td>所在城市</td>
<td>电话号码</td>
</tr>
<% DO WHILE NOT CustomerList.EOF %>
'检测记录是否到了最后一条。EOF表示End of File。
<TR>
<TD><% =CustomerList("客户编号") %></TD>
<TD><% =CustomerList("公司名称") %></TD>
<TD><% =CustomerList("联络人姓名") %></TD>
<TD><% =CustomerList("所在城市") %></TD>
<TD><% =CustomerList("电话号码") %></TD>
</TR>
<% =CustomerList("客户编号") %>可以说是Response.Write方法的简写。将"客户编号"字段内的数据写入TD标签间。
<%
loop
%>
如果还没有到最后一条则指针移动到下一条。用Do While ... Loop循环逐一取得所有的记录。
</TABLE>
</CENTER>
<center>
<input type="button" onclick="java script:location.href='add.htm'" value="添加数据">
</center>
</BODY>
</HTML>