问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库在acess中表,查询,窗体,宏都建立完了随后要怎么弄。怎么将这个数据库建立成界面的形式

发布网友 发布时间:2022-04-10 05:28

我来回答

1个回答

热心网友 时间:2022-04-10 06:57

ASP操作ACESS数据库

一,拥有数据库

可以这么说:静态页面和动态页面最大的区别就是采用了数据库。有关一个WEB程序采用数据库和不采用的优越性比较,就不去细细分析了,主要精力还是放在如何使用数据库,如何熟练运用数据库,如何更灵活地运用数据库等等……其中运用操作数据库主要是对数据库内容进行:显示、插入、修改、更新、查询和删除。

这些方法当然也不是一口就能吃出来的,要慢慢感受咀嚼、理解消化。当然首先很重要的便是先拥有数据库了。否则,一切都是空谈,巧媳妇难以无米之炊嘛。

一般而言,我们所说的数据库其实就是一个数据库文件,该文件是由一些数据库管理系统(DBMS)建立生成的。目前一般的DBMS也就是常用常听说的ACCESS,SQLSERVER,MYSQL,ORACLE。当然一般个人站点,小型企业采用ACCESS完全足够;稍微大些的就采用同样是Microsoft公司的SQL SERVER或者是MYSQL,值得注意的是MYSQL一般是和另外一种网络编程语言PHP完美结合的。当然更大型的就采用ORACLE了。呵呵,曾经在学习PB时还运用到SYBASE数据库,UNIX系统的Informix数据库……DBMS简直是多如牛毛-_-!

话说过来,目前我们就直接使用ACCESS了:1,使用简单;2,入门掌握容易;3,实在没有比这个更适合初学的了。

一切还得从实际操作开始。

1,打开ACCESS数据库,选择新建数据库,将其命名为cnbruce.mdb,并保存到一专门文件夹database中

[img]images/ado/1.gif[/img]

2,在新建的数据库容器中双击“使用设计器创建表”,弹出的表1窗口中字段名称输入“cn_id”,数据类型选择“自动编号”,并选择上方工具栏中的钥匙按钮,将该字段设为主键。

继续输入字段“cn_title”,数据类型选择“文本”;NEXT输入字段“cn_content”,数据类型选择“备注”;
PS:备注和一般类型文本最大的区别就是备注允许插入的字段值相对要多些,这在插入一些较长文章的时候尤其重要。

仍然输入字段“cn_author”,数据类型选择“文本”;并且切换到下面“常规”中的“允许空字符串”选择“是”。
PS:这表面允许cn_author字段的值可以是空的,这在当提交表单,某些信息不填写但要正确插入数据库时,显得很重要。

最后输入字段“cn_time”,数据类型选择“日期/时间”,继续切换到“常规”中的“默认值”输入“now()”函数

末了,将“表1”另存为“cnartile”

[img]images/ado/2.gif[/img]

3,双击打开cnartile表,填写第一行:“cn_title”输入“test”,“cn_content”输入“this is a test”,“cn_author”输入“cnbruce”,时间已经自动添加。完成!关闭表,关闭数据库。

[img]images/ado/3.gif[/img]

二,建立数据库连接

OK,数据库已经建立完毕,并且已经填写了一行信息内容。那么现在需要的就是同过ASP将该行信息显示出来。

要想显示,首先还是需要ASP与该数据库文件建立连接,具体怎么建立?往下看。

1,conn.asp:主要起的是连接并打开某数据库文件的功能。该文件建议单独存在,并且位置是和存放数据库的文件夹database处与同一物理层次。

<%db_path = "database/cnbruce.mdb"Set conn= Server.CreateObject("ADODB.Connection")connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path)conn.Open connstr%>

db_path = "database/cnbruce.mdb",不用说,就是将数据库的相对路径赋到一个变量上,以方便下面继续调用。

Set conn= Server.CreateObject("ADODB.Connection"),和其它建立组件一样,建立了一个ADO连接,并用一对象conn来接受。

connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path),很显然就是连接字符串了,其包括打开数据库的驱动方法OLEDB,和打开和哪个数据库的连接(即数据库的路径)。

需要再次提醒的是:无论是FSO对文件、文件夹的操作还是ADO对数据库的操作,对被操作文件的取得都是获得的绝对的物理地址,一般情况之下,采用Server.MapPath方法相对较好。

conn.Open connstr最后对象conn通过连接字符串connstr打开了数据库的连接。

三,显示数据库内容

建立了数据库,建立了和数据库的连接,下面水到渠成地就是将数据库中的内容通过ASP显示出来。

2,showit.asp

<!--#include file="conn.asp" --><%Set rs = Server.CreateObject ("ADODB.Recordset")sql = "Select * from cnarticle"rs.Open sql,conn,1,1%><%if rs.EOF and rs.BOF then response.write ("暂时还没有文章")else Do Until rs.EOF response.write("文章标题是:"& rs("cn_title")) response.write("<br>文章作者是:"& rs("cn_author")) response.write("<br>文章加入时间是:"& rs("cn_time")) response.write("<br>文章内容是:"& rs("cn_content")) response.write("<hr>") rs.MoveNext Loopend if%><%rs.close Set rs = Nothingconn.close set conn=Nothing%>

简单调试本页,不出任何意外,相信一定能将数据库中的信息显示出来了。(PS:我的数据库中输写了两行)

[img]images/ado/4.gif[/img]

下面就来具体一个一个解释来理解没行的含义:
1,<!--#include file="conn.asp" --> 没有任何争议,主要是调用conn.asp的所起的功效,这在解释conn.asp文件的时候已经明白。

2,Set rs = Server.CreateObject ("ADODB.Recordset") ADO组件除了Connection连接以外,还有Recordset绑定记录集(相信用过DW做ASP的人现在开始有些重回故里的感觉了)当然 rs 可以形象地想象成数据库表中的某一行。

3,sql = "Select * from cnarticle" 标准的SQL结构化查询语言。很简单:建立了数据库连接,也绑定了记录集,那具体需要哪些信息呢?也就是要筛选一些记录集合了,不过当前采用的是无任何条件,即可以提取所有。

4,rs.Open sql,conn,1,1 真正地打开通向数据库中记录集的大门,具体有关后面的参数可以从如下网址中获得。

5,if rs.EOF and rs.BOF then 该语句里面涉及到了rs.EOF 和 rs.BOF 以及两者的逻辑运算 and 。rs.EOF 表示到达数据库表中的最后一行,rs.BOF 表示到达数据库表中的第一行。整个语句可以理解为,如果当前数据库中的最后一行就是数据库表中第一行,那么可以肯定:当前数据库表中没有任何数据。

6,
Do Until rs.EOF
...
rs.MoveNext
Loop

主要就是一个DO LOOP 循环语句了,其中循环的结束条件为:直到rs.EOF,即值得数据库表的最后一行。那么在这些条件满足的许可之内,就是来显示具体的信息了。

每次循环只能显示数据库表中的一行,如果要继续读取下行,那么 rs.MoveNext 功能真是如此。

7,rs("cn_title")等等 主要就是具体显示记录集中的哪个特定字段的信息值了。很是简单。

8,最后不要忘了释放资源空间关闭记录集连接,关闭数据库连接。

四,一些特殊条件

1,有没有注意到,数据库表信息的显示一般是按照时间的先后排列的,也就经常提到的按时间的升序排列。需要注意:按时间升序,并不一定每个数据库表中都要有一个时间/日期类型的字段,只要存在一个自动编号的字段就可以了。因为该字段是永不重复,并且是依次增大的。因此,按时间升序其实就是按自动编号中号码数值的增加来进行排序的。

当然,问题的关键来了,那就是要按照时间的降序排列,即始终从最新的内容开始显示。那具体需要哪些手术呢?
很简单,将连接字符串稍做修改。

由 sql = "Select * from cnarticle" 添加修改为
sql = "Select * from cnarticle order by cn_id desc"
其中 order by cn_id 即通过cn_id字段,desc 即降序了。

2,有是时候,只需要提取最前或者最新的几条信息,那这个又具体如何操作呢?同样还是连接字符串的修改
由 sql = "Select * from cnarticle order by cn_id desc" 添加修改为
sql = "Select top 3 * from cnarticle order by cn_id desc"
其中 top 3 就表示提取最新的三条信息内容了。

That's All. 现在一个文章系统、新闻系统或者留言本显示部分的精华内容你已不费吹灰之力搞定。

留下你的是:文章的格式可能显示不对劲,比如回车、空格都不显示了,那么你就还要学会处理接受的数据库表的值(在ASP的几个练习中提到的);文章不能老是打开数据库输入信息啊,那么你就要继续学会如何用ASP插入数据到库表;再有就是文章多了,一个页面看是不是很麻烦?那么你还要学会分页技术……

简单的显示记录已经掌握,现在需要的就是通过ASP将信息内容插入到数据库中。

一、拥有数据库cnbruce.mdb

本数据库的作用就是用来被插入数据的,可以直接采用上节中已经建立的cnbruce.mdb文件,当然连接打开数据库的文件conn.asp也就顺利引用了。

二、建立输入插入信息的页面平台addit.html

本页的主要作用是:显示一些文本输入框以用来提供输入信息内容提交数据库。

1,addit.html
<form action="addit.asp" method="post">Title:<input type="text" name="title"><br>Author:<input type="text" name="author"><br>Content:<br><textarea name="content" rows="8" cols="30"></textarea><br><input type="submit" value="Add"><input type="reset" value="Reset"></form>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

本页其实很简单,就是通过submit按钮将表单的信息内容提交到addit.asp页面去处理。

三、建立处理接受数据并插入数据库表的页面程序addit.asp

2,addit.asp

<!--#include file="conn.asp" --><%whattitle=request.form("title")whoauthor=request.form("author")whatcontent=request.form("content")%><%Set rs = Server.CreateObject ("ADODB.Recordset")sql = "Select * from cnarticle"rs.Open sql,conn,3,2%><%rs.addnewrs("cn_title")=whattitlers("cn_author")=whoauthorrs("cn_content")=whatcontentrs.update%>文章添加成功,<a href="showit.asp">浏览</a><%rs.close Set rs = Nothingconn.close set conn=Nothing%>

恩,接着就是来具体分析一下。

1,<!--#include file="conn.asp" --> 不用说,凡是要和数据库有联系的都要运用到该连接文件。

2,whattitle=request.form("title")之类 就是将上页表单中接受过来的值赋到一变量上,方便下面程序的调用。

3,rs.Open sql,conn,3,2 注意参数和显示数据库时采用的参数的不同。

4,rs.addnew 很简单也很显眼的一个声明:新建一个数据库记录集行。

5,rs("cn_title")=whattitle之类 即将接受的表单值对应到相关字段中。

6,rs.update 只是值和数据库字段的对应,完了后还要将对应的值上传提交到数据库表中去。

7,插入后可以跳转到showit.asp查看 需要说明,以后的ASP例题可能都是建立在前几节内容的基础之上完成的。

8,释放资源 是规矩,不要忘记。

那么,现在。插入并显示数据库记录,对你来说完全是小菜一碟了。大体框架搭建完毕,下面就是具体的细化了。

其中包括:客户端的表单检测,防止用户信息输入的遗漏;当然最好还是要加上服务器端的表单检测,由于客户端的某些原因(比如自行设计提交非检测的页面)基于安全考虑,一切还是依服务器端所接受信息为准。那下面就继续细化应用下了。

1,客户端检测 其实就是通过简单的脚本检测,这在初学ASP提到脚本的时候说到,下面将再次重复。

加强的addit.html
<script laguage="javascript"><!--function form1_onsubmit(){if (document.form1.title.value==""){alert("请输入文章标题")document.form1.title.focus()return false}else if(document.form1.content.value==""){alert("请输入文章内容")document.form1.content.focus()return false}}--></script><form action="addit.asp" method="post" name="form1" script_onsubmit="return form1_onsubmit()">Title:<input type="text" name="title"><br>Author:<input type="text" name="author"><br>Content:<br><textarea name="content" rows="8" cols="30"></textarea><br><input type="submit" value="Add"><input type="reset" value="Reset"></form>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

2,服务器端检测 有人也许会问,既然有了客户端的检测,那还有多个服务器端的检测呢?原因很简单,比如仿照HTML表单提交页,自行设计一张去除了表单检测的页面。当点击提交,并且没有任何信息时,到达服务器端如没有任何防御则肯定会造成数据插入的失败。

加强的addit.asp

<!--#include file="conn.asp" --><%whattitle=trim(request.form("title"))whoauthor=trim(request.form("author"))whatcontent=trim(request.form("content"))%><%if whattitle="" then%><script language=vbs>alert("请输入文章标题")history.go(-1)</script><%end if%><%if whatcontent="" then%><script language=vbs>alert("请输入文章标题")history.go(-1)</script><%end if%><%Set rs = Server.CreateObject ("ADODB.Recordset")sql = "Select * from cnarticle"rs.Open sql,conn,3,2%><%rs.addnewrs("cn_title")=whattitlers("cn_author")=whoauthorrs("cn_content")=whatcontentrs.update%>文章添加成功,<a href="showit.asp">浏览</a><%rs.close Set rs = Nothingconn.close set conn=Nothing%>

可以看出,就是添加了如下类似的判断。

<%if whattitle="" then%><script language=vbs>alert("请输入文章标题")history.go(-1)</script><%end if%>

很简单,如果接受过来的信息为空,则弹出警告框,并且确认后返回到上页即addit.html了。当然cn_author没有设置检测,因为当初设计该字段的接受值是允许为空的。

OK,总结一下,插入记录主要就是

rs.addnewrs("cn_title")=whattitle...rs.update

很简单,先声明addnew,然后一一对应,再提交插入数据库。

这是一种插入数据库的方法,下面就来接触了解一下另外一种。

需要注意,结构化的查询语言也就是SQL语句能够完成一些比较苛刻的数据库操作。当然,对于诸如提取、插入信息之流就更不在话下了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 oppoa57如何关闭开发者模式 oppo开发者模式对手机有坏处吗?怎么关? OPPO A57 打开了开发者设置,打开开发者选项时要输验证码,输吗?对手机好吗? OPPO手机进入开发者模式会不会对手机有损害? OPPO手机的开发模式有什么用? 玻璃胶沾上裤子怎么办 玻璃胶粘在裤子应该怎么办? js接受response的问题 我在服务器端response.write(json对象); 求360安全浏览器4.1.2.8的安装包 求《电脑报2021年第09期》全文免费下载百度网盘资源,谢谢~ 求《电脑报2021年第17期》全文免费下载百度网盘资源,谢谢~ 求《电脑爱好者2021年3期》全文免费下载百度网盘资源,谢谢~ 求《2021电脑报第10期高清》全文免费下载百度网盘资源,谢谢~ 求《电脑报2021年第8期》全文免费下载百度网盘资源,谢谢~ 求《电脑报2021年第14期》全文免费下载百度网盘资源,谢谢~ 求《电脑报2021年第2期》全文免费下载百度网盘资源,谢谢~ 馄炖的煮法 求《电脑报2021年第12期》全文免费下载百度网盘资源,谢谢~ 为什么自己包的馄饨煮出来有气 为什么男朋友喜欢问自己女朋友穿什么颜色的内裤啊,我觉得好无语不想回答他他又生气 与青年英语教师谈如何写科研论文 最早研究语音语调的国内外学者及著作、论文等,哎。。。要写一篇关于小学英语教师语音语调调查研究的论文 如何提高小学英语阅读教学的有效性研究论文文献综述 如何在小学英语课堂中发挥小组合作的时效性论文 我的大学毕业论文选题是“小学英语教材研究”,请问从哪个角度来写比较好呀? 急需一篇小学教育方向毕业论文。必须有中文摘要、关键词 ;英文摘要 目录 前言 正文 结论 主要参考文献。 英语语法毕业论文选题怎么弄? 论文身体语言在小学英语教学中的运用有什么研究意义 奇怪了,西瓜视频有的人回复我,我不知道,消息没有显示?看我的评论才知道。 西瓜视频中删除的评论别人能看到吗 火车是怎么走的 火车是怎么行驶的 坐火车怎么走 坐火车怎么走? 坐火车怎么去? 坐火车怎么走啊 没有坐过火车,,坐火车怎么坐 第一次坐火车需要怎么做? 西安坐火车怎么走 平台注册错了怎么取消?