ASP往已建立好的ACCESS数据库中写数据?

2024-11-25 17:42:32
推荐回答(2个)
回答1:

asp对access数据库中数据的添加、修改、删除(已测试
1:首先建立一个access数据库保存为 xhnew.mdb 表名为aa
字段如下:
id 自动排序
name 文本
content 文本
xhtime 日期 默认值 now()
title 文本
2:打开DW 建立文件conn.asp文件
代码如下:
程序代码
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("xhnew.mdb")
%>
这段语句是连接数据库的语句 set conn=server.createobject("adodb.connection")创建一个connection对象 用该对象的open方法打开数据库
driver={microsoft access driver (*.mdb)};这句语句是access的驱动
dbq="&server.mappath("xhnew.mdb")这句是数据库的路径
建立conn.asp是为了方便接下来的教学。。。
我们可以任何要用到打开数据库连接的文件里加
就可以调用
现在来学把数据库的信息输出来
下面先建立一个主文件index.asp
代码如下

<%
exec="select * from aa order by id desc "
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>


<%
if rs.eof and rs.bof then
response.write("暂时没有文章")
else
do while not rs.eof
%>









<%
rs.movenext
loop
end if
%>
<%=rs("id")%> <%=rs("name")%> <%=rs("content")%> <%=rs("xhtime")%> <%=rs("title")%> " target="_self">编辑 ">删除

<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
添加
代码解释:
(1)<%
exec="select * from aa order by id desc "
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
上面的代码是创建一个recordset对象。。该对象是用来打开数据库中的表的。。也就是打开aa
exec="select * from aa order by id desc " 这句的意思是查找表aa中所有信息并倒序排列
信息. *号表示aa中所有的信息 order by id 就是aa中id字段 desc 是倒序的意思
rs.open exec,conn,1,1 这句话的意思是用recordset对象来打开conn中的表
(2) <%
if rs.eof and rs.bof then
response.write("暂时没有文章")
else
do while not rs.eof
%>
上面是if语句。。if else语句是相当重要的。。
rs.eof 的意思是aa表中的最后一条记录 那么rs.bof就是第一条记录
整个语句用中文翻译就是 当aa表中的最后和最前一条信息没有的时候。。就输出暂时没有文章或则就循环到eof最后一条信息。。
(3)
<%=rs("id")%>
<%=rs("name")%>
<%=rs("content")%>
<%=rs("xhtime")%>
<%=rs("title")%>
" target="_self">编辑
">删除

上面的代码比较容易理解。。<%=rs("id")%>这个用法是输出数据库字段id..
" target="_self">编辑这段很重要。。
我来解释一下。。在ie窗口点 编辑 的时候。。页面会跳转到modify.asp的文件里的id
并进行相应的处理。。
(4) <%
rs.movenext
loop
end if
%>
这句是循环结束的语句
rs.movenext 这句是游标向下指的意思
(5) <%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
这句是关闭数据库的语句
用完数据库后要记得关闭数据库。。以免占用资源
现在来学添加数据到数据库 需要两个文件来实现
(1)先建立一个提交表单add.asp
代码如下:


无标题文档



名字

备注

题目






上面代码要注意的是action="add_new.asp"提交到add_new.asp文件
还有name="name" name="content" name="title" 名字要对应
(2)处理文件add_new.asp
代码如下:

<%
name=request.form("name")
content=request.form("content")
title=request.form("title")
exec="insert into aa(name,content,title) values('"+name+"','"+content+"','"+title+"')"
conn.execute exec
conn.close
set conn=nothing
response.redirect "index.asp"
%>
代码解释:
(1) name=request.form("name")
content=request.form("content")
title=request.form("title")
这三句语句是接收add.asp发来的信息。。request.form("name")就是对应add.asp中的name="name"
(2)
exec="insert into aa(name,content,title) values('"+name+"','"+content+"','"+title+"')"
conn.execute exec
上面的语句是数据库插如信息的语句
insert into aa(name,content,title) 中文意思是插入信息对应aa表中的三个字段
三个字段的数值是values('"+name+"','"+content+"','"+title+"') 这里面对应的值是
这三句语句 name=request.form("name")
content=request.form("content")
title=request.form("title")
传递的
(3)
conn.close
set conn=nothing
response.redirect "index.asp"
关闭数据库。。写如成功后自动转页面到index.asp
接下来我们来学删除数据库信息。。。
只需要一个文件del.asp
代码如下:

<%
exec="delete * from aa where id="&request.querystring("id")
conn.execute exec
conn.close
set conn=nothing
response.redirect "index.asp"
%>
代码解释:
exec="delete * from aa where id="&request.querystring("id")
conn.execute exec
先翻译成中文意思
删除表aa中id字段的值。。这个值等于="&request.querystring("id")
还记得我们建立index.asp文件的时候吗?里面有段语句是这样的
">删除
大家现在看明白了吧!你们这么聪明。。一定明白了。
我再补充说两句
当我们点击删除的时候。。。这个时候就会连接到del.asp做处理。。
而同时del.asp接收到我们的请求是通过"&request.querystring("id")这句语句
然后conn.execute exec 这条语句就执行删除。。
整个流程就是这样。。。
修改需要两个文件
(一)建立modify.asp 和del.asp很像似
代码如下:

<%
exec="select * from aa where id="&request.querystring("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>












name content title

">

">
">

">


<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
代码解释:
(1)
<%
exec="select * from aa where id="&request.querystring("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
这句exec="select * from aa where id="&request.querystring("id")我在del.asp里解释过了
在这里也是一样的道理
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
上面是用recordset对象打开数据表。。。
(2) ">
这里要注意名字要对应。。否则或出错。。
">
这里是隐藏表单。。。提交隐藏的表单元素会随着表单一起提交,用于传递变量
(二)建立modifysave.asp 文件
代码如下:

<%
exec="select * from aa where id="&request.form("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,3
%>
<%
rs("name")=request.form("name")
rs("content")=request.form("content")
rs("title")=request.form("title")
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
response.redirect"index.asp"
%>
代码解释:
(1)
rs("name")=request.form("name")
rs("content")=request.form("content")
rs("title")=request.form("title")
这三句话的意思是数据库中的rs("name")的值等于接收到request.form("name")的值
request.form("name")的值是从modify.asp传递来的。。
(2)
rs.update 这句语句是更新数据库里的信息的意思 就是把提交的信息上传到数据库

回答2:

添加
<%
editid=request.form("editid") '取得form数据
TheDate=now()
Set rs=Server.CreateObject("Adodb.RecordSet")'建立对象

rs.open "Select * From Table ,conn,1,3
rs.addnew'添加记录
rs("editid")=editid
rs("TheDate")=TheDate
rs.update'更新记录
rs.Close’关闭指针
%>