|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
前言: 前几天看了《请不要做浮躁的人》这篇文章.真是收益非浅..每看这篇文章就会脸红一次.想想学习ASP这么长时间了..居然还是属于菜鸟级的人物.说来惭愧那.可能跟自己的努力程度和实践程度有关.文中有句话说的好: 菜鸟学习脚本的方式就是多训练. 的确是这样,世界上本来就没有跨不过去的坎..要害在于你要去做.光说不练是假把式....我想只要你去做了,你就不可能永远菜下去... 那好....废话不说了,切入正题. 学习ASP有段时间了..对一些基础的东西也有了一些了解.比如常用的内置对象的用法.那么现在你需要开始动手规划你的第一个留言本.人都有第一次吗?是不是....你要把那些知识用到实战中去以检验你的ASP学习成果..那,留言本其实是最好的练手机会.因为留言本从结构上来说不是很复杂...而且会用到很到ASP中比较基础的东西.你独立完成的这个留言本是你的第一个作品,好说也有点成就感嘛.而且对你的ASP技术进阶也有很大的帮助.....省略1000字..哎..我这个人就是喜欢罗嗦..就此打住... 我们立刻开始... 一. 制作思路 思路其实是一个很重要的东西.写程序尤其是如此.谁都没有掌握去编写一个还没有思索成熟的东西. 先明确一点,这个留言本没有用到任何新技术.[是给菜鸟看的嘛].因为这个教程的目的不在于创新而在于训练. 大体的思路是这样: 需要一个数据库存放留言的内容等.然后用ASP读出数据库中的内容显示在页面上. 主要讲解了一下在ASP中运用ADO和SQL语句对数据库的一些基本操作.比如最常用的Select语句.对了.就是这样.关于ADO请参阅相关资料... 在这个极简朴的留言本中用到的文件清单: Liuyan.mdb \\\'留言本数据库文件 Install.asp \\\'留言本表结构创建文件 Show.asp \\\'显示留言主文件 Add.htm \\\'添加新留言表单 Insert.asp \\\'插入新留言文件 login.asp \\\'治理员登录文件 del.asp \\\'删除留言文件 二.建立数据库 1.打开你的Access建立一个文件名为:Liuyan.mdb.添加以下字段: (1). ID 类型为自动编号(存放留言的ID编号) (2). Name 类型为文本字段(存放留言人的姓名) (3). Homepage 类型为文本字段(存放留言人的主页) (4). Title 类型为文本字段(存放留言的主题) (5). Neirong 类型为备注字段(存放留言的内容) 当然你可以自己添加你认为需要的字段,假如你把字段名或表名换成其它名称,则对程序也要作出相应的更改,不然会出错。假如你不想手工建表及添加字段,那你可以在浏览器中运行Install.asp文件,它可以自动建表,你就可以偷懒了:) 2. 在开始编写之前有必要罗列下在这个留言本中用的的SQL语句.也是留言本的原理. 以本数据库为例: \\\'检索出数据库中的留言并最新的留言在前 Sql=SELECT * FROM liuyan ORDER BY id DESC \\\'这个语句是签写新留言时用到的. Sql=INSERT INTO liuyan(name,homepage,title,neirong) VALUES (\\\'name\\\',\\\'homepage\\\',title\\\',\\\'neirong\\\') 这两条语句是今天要用到的.还有很多基本语句比如Delete,update等并没有在这个留言本中用到.你可以自己试着完善. 三.编写代码 1.Install.asp:考虑到手工建表有点麻烦,所以写了这个文件。文件主要用到CREATE TABLE和DROP TABLE语句,不过由于数据库的原因,有些数据库有可能不支持此语句。本文以Access为例,因为ACCESS支持这两条语句,假如还是新手还看不懂那也没关系,以为有机会再研究好了:)。由于不清晰数据库定义了那些要害字,所以在创建表和字段时,都用[]把表名和字段名括起来,即使表名或字段名和数据库的要害字冲突,也不会引起程序出错。不过运行本程序前,必须先在Access中创建一个数据库名称为liuyan.mdb,可以不为其创建表,用此程序来创建。 Install.asp的源代码: <% \\\'此文件在执行后最好删除,因为假如不注重再次执行的话,将会使数据库的所有数据丢失,切记! Dim SYS_strTableName,SYS_strSQL,SYS_objRS \\\'需要创建的表的名字 SYS_strTableName = "liuyan" Set objConn = Server.CreateObject("ADODB.Connection") \\\'OLEDB方法打开数据库的Connection对象连接字符串 strcon="provider=microsoft.jet.oledb.4.0;data source=" & Server.mappath("liuyan.mdb") objConn.open strcon\\\'和数据库已经建立连接可对其操作了. \\\'DROP TABLE是一条从数据库中删除表的SQL语句。有些数据库有可能不支持。 SYS_strSQL = "DROP TABLE [" & SYS_strTableName & "]" \\\'删除表时,假如有错误出现则跳转执行下语句 \\\'因为假如DROP TABLE一个数据库中并不存在的表时,就会导致程序出错, \\\'所以加了这个语句On Error Resume Next On Error Resume Next objConn.Execute (SYS_strSQL) \\\'因为On Error Resume Next比较耗资源,执行这条语句后,下面再出现错误将不会被跳转了也就是On Error Resume Next将不对此后的语句产生作用了,假如不加这句话,就对此后的都起屏蔽错误的作用。 On Error Goto 0 \\\'创建表格的主要是用CREATE TABLE语句 \\\'CREATE TABLE tablename (fieldname1 fieldytype1,fieldname2 fieldtype2......) SYS_strSQL = "CREATE TABLE [" & SYS_strTableName & "] (" \\\'此为创建自动编号类型的字段id SYS_strSQL = SYS_strSQL & "[id] integer IDENTITY (1, 1) PRIMARY KEY NOT NULL ," \\\'创建文本类型的字段name,并限定该字段的长度为50(char(50)实现该功能),不能为空(NOT NULL) SYS_strSQL = SYS_strSQL & "[name] char (50) NOT NULL," \\\'创建文本类型的字段homepage,并限定该字段的长度为50(char(50)实现该功能),答应为空(NULL) SYS_strSQL = SYS_strSQL & "[homepage] char (50) NULL ," SYS_strSQL = SYS_strSQL & "[title] char(50) NOT NULL," \\\'创建备注类型的字段neirong SYS_strSQL = SYS_strSQL & "[neirong] memo)" Set SYS_objRS = objConn.Execute(SYS_strSQL) \\\'显示创建成功信息。 Response.Write ("<br><font color=""#ff0000"">" & SYS_strTableName & "</font> 表创建成功!<br>") %> 2.show.asp文件基本思路: 把每一条留言以表格的形式存放标准Html中.然后通过Asp中的Do while方式循环打印出表格.利用ADO对象依次读出数据表的留言内容显示在页面上.暂时没有分页功能.....因为这是个最简朴的留言本吗?^_^.. 先定义数据库连接对象..采用标准的Oledb连接方法.主要用到Connection、RecordSet这两个对象.就是我们读出的记录集变量. show.asp的源代码: <html> <head> <title>最简留言本</title> <LINK href="style.css" rel=stylesheet type=text/css> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head> <body leftmargin="1" topmargin="0"> <% Set conn = Server.CreateObject("ADODB.Connection") strcon="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("liuyan.mdb") conn.open strcon \\\'和数据库已经建立连接可对其操作了. Set rs = Server.CreateObject ("ADODB.Recordset") \\\'建立Recordset记录集对象 sql = "SELECT * FROM Liuyan ORDER BY id DESC" \\\'上面提到的Sql语句.作用是取出数据. rs.Open sql,conn,1 \\\'用RS对象的Open方式打开数据库并把数据存放进记录集中.... If rs.Bof And rs.Eof Then \\\'表中还没有任何记录 \\\'在屏幕上居中显示"还没任何留言!",并给出"添加新留言"的链接 Response.Write("<center>还没有任何留言!<br>请<a href=""Add.htm"">添加新留言</a></center>") \\\'强制终止程序的执行,在调试ASP程序时常常要用到这句 Response.End End If Do While Not rs.eof \\\'循环读出所有记录 \\\'Server.HtmlEncode(字符串)主要是原样输出HTML和JavaScript代码 %> <!-- html表格部分--> <table align=center width=65% cellspacing=1 cellpadding=4 bgcolor="#999999"> <tr> <td width=72 height="" align=center valign="middle" bgcolor="#003366"><font color="#FFFFFF">留言本:</font></td></tr> <tr> <td width="72" height="0" valign="middle" bgcolor="#E6E6E6"><font color="#000000">姓名:</font></td><td height="20" bgcolor="#E6E6E6"> <%=server.htmlencode(rs("name"))%> </td> </tr> <tr> <td width="72" height="0" valign="middle" bgcolor="#FFFFFF"><font color="#000000">hompage:</font></td> <td height="20" bgcolor="#FFFFFF"><%= server.htmlencode(rs("homepage"))%> </td></tr> <tr> <td width="72" height="20" bgcolor="#E6E6E6"><font color="#000000">主 题:</font></td> <td height="20" bgcolor="#E6E6E6"><%=server.htmlencode(rs("Title"))%></td></tr> <tr style="word-break:break-all"> <td width="72" height="20" bgcolor="#E6E6E6"><font color="#000000">留 言:</font></td> <td height="20" bgcolor="#E6E6E6"><%= server.htmlencode(rs("neirong"))%> </td></tr></table><br> <!--\\\' Html部分结束--> <% rs.movenext Loop \\\'关闭对象并释放资源 rs.Close Set rs = Nothing Conn.Close Set Conn = Nothing %> </body> </html> 返回类别: 教程 上一教程: 在ASP中使用SQL语句之8:随机数 下一教程: 使用组件封装ASP的数据库操作 您可以阅读与"ASP教你制作简朴的留言簿"相关的教程: · asp+版本简朴的留言板的制作(一) · ASP进阶教程Ⅷ:数据库版本的留言簿 · 手把手教你用ASP制作留言本 · ASP进阶教程Ⅱ:一个简朴的留言簿 · asp+版本简朴的留言板的制作(二) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |