本文讨论的是ASP,而不是Visual Studio写出来的.ASPX也就是ASP.NET。
ASP不需要任何插件的支持,关键你是配置好WINDOWS的IIS服务器,把页面扔在上面执行就可以了。
不同WINDOWS系统的IIS服务器配置,除了某些被阉割的WINXP装机版系统之外,都支持IIS服务器配置,都在WINDOWS的组件中,不需要下载任何东西。如何配置IIS服务器不是本文讨论的重点。
一、基本目标
假设Access2007数据库database.mdb中存在表test如下:
id为自增列,username,password皆为文本
现在要求把这张表在ASP页面中查询出来。并且再下面继续增加一项username=3,password=a的内容。
运行asp网页的时候记得把access关掉,不可以边打开access边运行asp网页。
二、制作过程
asp代码必须写在<%%>之中,
asp声明变量可以用dim a;声明,a不分类型,系统自动识别。dim可以不写,也就是完全可以写出a=什么,
改变a的值必须用set a=..不能直接a=...,此乃对a的初始化。
数据库声明部分conn与rs的值必须用set conn的形式赋予,因为系统已经自动对其初始化。
部分不需要引用任何文件。
整个网页的代码如下,下面一段一段进行说明:
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>数据库的连接、增删改查</title>
- </head>
- <body>
- <%
- db="Database.mdb"
- Set conn = Server.CreateObject("ADODB.Connection")
- conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd=admin;dbq=" & Server.MapPath(db)
- response.write "数据库连接成功!"
- Set rs = Server.CreateObject( "ADODB.Recordset" )
- sql = "select * from test;"
- rs.open sql,conn,1,3
- %>
- <br/>
- 表test的内容:
- <table border="1">
- <tr>
- <td>id</td>
- <td>username</td>
- <td>password</td>
- </tr>
- <%
- if (rs.bof and rs.eof) then
- response.write "nodata!"
- else
- do while not rs.eof
- %>
- <tr>
- <td><%=rs("id")%></td>
- <td><%=rs("username")%></td>
- <td><%=rs("password")%></td>
- </tr>
- <%
- rs.movenext
- loop
- end if
- %>
- </table>
- <%
- 'conn.execute "update test set username='2' where username='a';"
- conn.execute "insert into test(username,password) values ('3','a');"
- %>
- ---------插入数据之后--------<br/>
- 表test的内容:<br/>
- <%
- Set rs = Server.CreateObject( "ADODB.Recordset" )
- sql = "select * from test;"
- rs.open sql,conn,1,3
- %>
- <table border="1">
- <tr>
- <td>id</td>
- <td>username</td>
- <td>password</td>
- </tr>
- <%
- if (rs.bof and rs.eof) then
- response.write "nodata!"
- else
- do while not rs.eof
- %>
- <tr>
- <td><%=rs("id")%></td>
- <td><%=rs("username")%></td>
- <td><%=rs("password")%></td>
- </tr>
- <%
- rs.movenext
- loop
- end if
- %>
- </table>
- <%
- rs.close
- set rs=nothing
- conn.close
- set conn=nothing
- %>
- </body>
- </html>
复制代码
这段代码是用记事本敲出来的,没有用任何开发工具,所有缺乏缩进等基本代码格式见谅,ASP实在缺乏代码开发工具。
ASPEDIT都是一些1997年就出版的东西了。
1、部分
- <head>
- <!--必须声明使用utf-8编码,否则在IE8中页面显示会乱码-->
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>数据库的连接、增删改查</title>
- </head>
复制代码
以下就是 部分了
2、连接数据库部分
- <%
- 'asp同使用'去注释,不允许使用;来结束语句,每一个enter键就是代表一条语句结束
- 'Access数据库文件是database.mdb
- db="Database.mdb"
- Set conn = Server.CreateObject("ADODB.Connection")
- '指定动作,pwd后的值代表此数据库的密码
- conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd=admin;dbq=" & Server.MapPath(db)
- '在网页上输出东西,可以用response对象
- response.write "数据库连接成功!"
- %>
复制代码
3、查询部分
- <%
- '指定动作
- Set rs = Server.CreateObject( "ADODB.Recordset" )
- '查询语句
- sql = "select * from test;"
- '使用sql对conn进行查询,后面的参数代表我要完全操作这个数据库
- rs.open sql,conn,1,3
- %>
- <!--此乃表头,asp代码可以与html代码混合,table默认是没有边框的,所以要设置一个border参数-->
- <br/>
- 表test的内容:
- <table border="1">
- <tr>
- <td>id</td>
- <td>username</td>
- <td>password</td>
- </tr>
- <%
- '如果没有查到任何东西这样写,ASP没有括号,条件体必须用end if结束,then相当于左括号,end if相当于右括号
- if (rs.bof and rs.eof) then
- response.write "nodata!"
- else
- '否则就循环,直到读完这条游标,循环条件是not rs.eof,ASP没有括号,do while循环体必须用loop结束,do while后自带左括号,loop相当于右括号
- '下面的html循环一次就向网页写入一次
- do while not rs.eof
- %>
- <tr>
- <td><%=rs("id")%></td>
- <td><%=rs("username")%></td>
- <td><%=rs("password")%></td>
- </tr>
- <%
- '读完一项,游标向下拉
- rs.movenext
- loop
- end if
- %>
- </table>
复制代码
4、增加、删除、修改操作部分
这里没有写出删除操作,修改操作则被注释掉了,但他们的用法与增加操作完全一样,
- <%
- '与查询操作不同的是,插入操作很简短。
- '修改操作可以用下面的语句,把test表的username字段(列)中为a的项都改为2
- 'conn.execute "update test set username='2' where username='a';"
- conn.execute "insert into test(username,password) values ('3','a');"
- %>
复制代码 插入之后再次查询的道理与上面的未插入之前是一样道理的,就不再进行说明了。
来源:https://blog.csdn.net/yongh701/article/details/40953051 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |