Chinaunix首页 | 论坛 | 博客
  • 博客访问: 297920
  • 博文数量: 76
  • 博客积分: 1662
  • 博客等级: 上尉
  • 技术积分: 764
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-25 17:04
个人简介

辛勤的鸟儿总能找到虫子....

文章分类

全部博文(76)

文章存档

2017年(1)

2013年(4)

2012年(5)

2011年(4)

2010年(32)

2009年(23)

2008年(7)

分类: 系统运维

2011-05-09 20:11:59

    最近,由于工作需要我花一段时间学习了asp方面的知识。我想把我在这段时间里面的技术方面的感想做一个总结,希望能对asp的初学者有一个帮助,更重要的是记录一下自己的学习过程,技术上成长的过程,给自己留一个备份。好了,(哈哈。。。。。。)废话不说了,开始正题。
   我记得,刚开始学习asp的时候是通过一个视频来学习的,我觉得这个对我是非常的重要,而且非常的适合刚开始学习asp的人。所以我极力推荐那些想自己学习asp的初学者们最好抽点时间好好的看看。那个视频的网址是:。最起码,它能够使你很快的入门。
   经过那一段时间的学习,我觉得我在asp方面算是入门了。看了那个视频之后我对asp的基础知识:语法知识、判断、循环语句的使用、简单的函数处理;与服务器进行交互,包括从服务器中读取数据、向服务器写数据;与数据库的交互:从数据库中读取数据、往数据库中写数据。接下来我开始做一个实战的项目,哈哈。。。大家都知道,只有通过实践才能提高自己的水平,事实上也只有通过实践才可以很快速的提高自己的水平-这是一个千古不变得真理。这个项目是做一个简单的网站,具体的详细情况由于职业道德我就不说了,这里知识简单交代一下这个项目一些简单的情况,这个项目是关于学生的缴费系统。需求是这样的:用户可以按照班级和学号来查询某个班或者某个学生的缴费情况以及所选择课程的情况。这样吧,老规矩先上代码再分析:
  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
  2. <!--#include file="inc/XXXXX.asp" -->
  3. <%
  4. file="XXXXXXXXXX.asp"
  5. %>

  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
  7. <html xmlns="">
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  10. <link href="css.css" rel="stylesheet" type="text/css" />
  11. <title>XXXXXXXXXXXX</title>
  12. </head>

  13. <body>
  14. <table>
  15. <tr>
  16. <td>请输入查询内容:</td>
  17. </tr>
  18. <tr>
  19. <td>&nbsp;&nbsp;</td>
  20. <td><form action="<%=file%>" method="post" name="form1">
  21. <td><input name="query_id" type="text" size="32" /></td>
  22. <td> <select name="query_mode">
  23.     <option value="0">请选择查询方式</option>
  24.     <option value="1">XXXX</option>
  25.     <option value="2">######</option>
  26.     </select>
  27. </td>
  28. <td><input name="button" type="submit" id="button" value="查询"/></td>
  29. </form>
  30. </td>
  31. </tr>
  32. </table>
  33. <table width="95%" height="25" border="0" align="center" cellpadding="1" cellspacing="0">
  34. <tr>
  35. <td><div align="left">查询结果:</div></td>
  36. </tr>
  37. </table>
  38. <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
  39. <tr>
  40. <td class="bgbj">
  41. <table width="100%" border="0" cellspacing="1" cellpadding="1">
  42. <tr>
  43. <td width="10%" align="center" valign="middle" class="bgbj1">学期</td>
  44. <td width="10%" align="center" valign="middle" class="bgbj1">班级</td>
  45. <td width="10%" align="center" valign="middle" class="bgbj1">学号</td>
  46. <td width="10%" align="center" valign="middle" class="bgbj1">姓名</td>
  47. <td width="35%" align="center" valign="middle" class="bgbj1">课程</td>
  48. <td width="10%" align="center" valign="middle" class="bgbj1">学费</td>
  49. <td width="15%" align="center" valign="middle" class="bgbj1">缴费时间</td>
  50. </tr>
  51. <%
  52. dim class_id, stu_id, query_mode,stu_term, stu_class, stu_classi, stu_name, stu_course, stu_tuition, stu_date, sql, sql1, sql_class, sql_tuition, db_info, conn, connstr, rs
  53.   query_mode=request("query_mode")
  54.    if request("query_mode")=2 then
  55.     'query information by class name
  56.     'stu_class = request.Form("query_id")
  57.     stu_classi = request("query_id")
  58.     sql_class= "select stu_term,stu_class, stu_id,stu_name,stu_course from stu_info1 where stu_class LIKE '%"&stu_classi&"%'"
  59.     'connect to database
  60.     db_info = split(dbnames, "|||")
  61.     set conn=server.CreateObject("ADODB.Connection")
  62.     connstr="PROVIDER=SQLOLEDB;DATA SOURCE="&db_info(0)&";UID="&db_info(1)&";PWD="&db_info(2)&";DATABASE="&db_info(3)&""
  63.     conn.Open connstr
  64.     Set rs=Server.CreateObject("ADODB.Recordset")
  65.     rs.open sql_class,conn,1,1
  66.     
  67.     'output query result
  68.     if not rs.eof then
  69.      rs.pagesize=30 '每页记录条数
  70.       curpage=Request.QueryString("curpage") '将URL参数curpage传给curpage变量
  71.       if curpage="" then
  72.          curpage=1
  73.       end if
  74.       rs.absolutepage=curpage '将本页设为curpage设置的页数
  75.      for i= 1 to rs.pagesize
  76.      if rs.eof then
  77.            exit for
  78.      end if
  79.      stu_term=rs(0)
  80.         stu_class=rs(1)
  81.         stu_id=rs(2)
  82.         stu_name=rs(3)
  83.         stu_course=rs(4)
  84.         'query tuition for student
  85.         sql_tuition="select stu_tuition, stu_date from stu_tuition where stu_id='"&stu_id&"' and stu_term= '"&stu_term&"'"
  86.         set rs1=Server.CreateObject("ADODB.Recordset")
  87.         rs1.open sql_tuition, conn,1
  88.      if not rs1.eof then
  89.          stu_tuition=rs1(0)
  90.          stu_date=rs1(1)
  91.      else
  92.          stu_tuition=""
  93.          stu_date=""
  94.      end if
  95. %>
  96. <tr>
  97. <td class="bgbj2"> <%=stu_term %> </td>
  98. <td class="bgbj2"> <%=stu_class%> </td>
  99. <td class="bgbj2"> <%= stu_id %> </td>
  100. <td class="bgbj2"> <%= stu_name%> </td>
  101. <td class="bgbj2"> <div align="center"><%=stu_course%></div></td>
  102. <td class="bgbj2"> <%= stu_tuition %></td>
  103. <td class="bgbj2"> <%= stu_date %></td>
  104. </tr>
  105. <%
  106.         rs1.close
  107.         set rs1=nothing
  108.      rs.movenext
  109.        next
  110. %>
  111. <tr>
  112. <td colspan="7" class="bgbj2"><div align="center">
  113. 当前第<%=curpage%>页,共有<%=rs.pagecount%>页,共有:<%=rs.recordcount%>条记录
  114. <%if curpage=1 then%>
  115. 首页
  116. <%else%>
  117. <a href="?curpage=1&query_mode=<%=query_mode%>&query_id=<%=stu_classi%>">首页</a>
  118. <%end if%>

  119. <%if curpage=1 then%>
  120. 上一页
  121. <%else%>
  122. <a href="?curpage=<%=curpage-1%>&query_mode=<%=query_mode%>&query_id=<%=stu_classi%>">上一页</a>
  123. <%end if%>

  124. <%if rs.pagecount<curpage+1 then%>
  125. 下一页
  126. <%else%>
  127. <a href="?curpage=<%=curpage+1%>&query_mode=<%=query_mode%>&query_id=<%=stu_classi%>">下一页</a>
  128. <%end if%>

  129. <%if rs.pagecount<curpage+1 then%>
  130. 尾页
  131. <%else%>
  132. <a href="?curpage=<%=rs.pagecount%>&query_mode=<%=query_mode%>&query_id=<%=stu_classi%>">尾页</a>
  133. <%end if%>
  134. </div>
  135. </td>
  136. </tr>
  137. <%
  138.     else 'if not rs.eof
  139. %>

  140. sorry! there is no record for you!



  141. <%
  142.    end if ' end if not rs.eof     
  143.  elseif request("query_mode")=1 then
  144.   'query information by student ID
  145.   stu_id = request("query_id")
  146.   if IsNumeric(stu_id) then
  147.     sql="select stu_term, stu_class, stu_name, stu_course from stu_info1 where stu_id='"&stu_id&"'"
  148.     db_info = split(dbnames, "|||")
  149.     set conn = server.createobject("ADODB.Connection")
  150.     connstr="PROVIDER=SQLOLEDB;DATA SOURCE="&db_info(0)&";UID="&db_info(1)&";PWD="&db_info(2)&";DATABASE="&db_info(3)&""
  151.     conn.Open connstr
  152.     Set rs=Server.CreateObject("ADODB.Recordset")
  153.     rs.open sql, conn,1
  154.     'output query result
  155.     if not rs.eof then
  156.       do while not rs.eof
  157.         stu_term=rs(0)
  158.         stu_class=rs(1)
  159.         stu_name=rs(2)
  160.      stu_course=rs(3)
  161.         sql_tuition="select stu_tuition, stu_date from stu_tuition where stu_id='"&stu_id&"' and stu_term= '"&stu_term&"'"
  162.         set rs1=Server.CreateObject("ADODB.Recordset")
  163.         rs1.open sql_tuition, conn,1
  164.      if not rs1.eof then
  165.           stu_tuition=rs1(0)
  166.          stu_date=rs1(1)
  167.         else
  168.          stu_tuition=""
  169.          stu_date=""
  170.         end if
  171. %>
  172. <tr>
  173. <td class="bgbj2"> <%=stu_term %> </td>
  174. <td class="bgbj2"> <%=stu_class %> </td>
  175. <td class="bgbj2"> <%=stu_id %> </td>
  176. <td class="bgbj2"> <%=stu_name %> </td>
  177. <td class="bgbj2"> <div align="center"><%=stu_course%></div></td>
  178. <td class="bgbj2"><%= stu_tuition %></td>
  179. <td class="bgbj2"><%= stu_date %></td>
  180. <tr>
  181. <%
  182.   rs1.close
  183.   set rs1=nothing
  184. rs.movenext
  185. loop
  186. %>
  187. <% else 'there are no record for this student %>

  188. sorry! there is no record for you!


  189. <%
  190.     rs.close
  191.     set rs=nothing
  192.     conn.close
  193.     set conn=nothing
  194.   end if
  195. else
  196. %>


  197. please input student ID consisted of digit:0-9



  198. <% end if ' end if IsNumeric(stu_id)%>
  199. <% end if
这就是我的全部代码了,怎么样简单吧!哈哈。。。我就这个水平啊!高手们谅解一下!!!!!
从上面得代码可以看出,只要是学了asp方面知识的或者做web方面的技术人员都会觉得这里几乎是没有什么难点的。但是我在写这个代码的时候还是遇到一些问题的,或者说这里还是有一些值得我注意的地方:
1.我觉得在web方面有一点是非常需要注意的是,没点击一次提交都是向服务器发送一次请求,这个是必须的也是毫无疑问的。一开始在网页的时候我不清楚这一点本来是想先让客户选择查询的模式,根据查询的模式来说显示不同的内容。但是由于后面还有一个从数据库查询数据,这样就需要两次请求。我可以做到这样的查询,但是我发现我不能修改查询的方式-也就是说我选择了一种查询方式以后就只能用哪种方式来查询,除非我把IE关了重新打开。呵呵。。。。我就是这个水平。如果高手愿意指点一下怎么实现的话,我是非常的感谢!
2.从数据库中取数据,以及修改从数据库中获取的数据,其实这个是不难的。但是作为动态web的关键技术的主要部分-与数据库交互。我还是提一下,大家都发现了,asp基本上用的都是微软提供的数据库(sqlserver, access),或许asp本身就是微软推出来。他们本来就是一体的。但是php就可以是其他的数据库比如postgresql和mysql等等。具体怎么和数据库交互,我想你们可以看看我推荐的视频网站。
3.这里有个技术难点(如果有的话)那就是分页了,这个在那个视频里没有介绍,我是从靠我的“兄弟”帮忙的-从百度和google中找到答案的。没有办法,做技术的人只有这样,只能与它们成为兄弟我才有饭吃啊!一开始我在google中以搜索,一大堆我想要的东西,随便找了一个就可以了。但是我利用这个模板使用在我的代码中,第一页能够正常的显示,但是点击第二页时,就什么都不显示了。我当时就纳闷了,仔细看看每一行代码都没有问题,为什么在别人的代码中可以,在我的代码中就不可以呢。找了半天也不明白。只有再一次的靠兄弟了,这回我更绝了直接找查询分页技术。又是一大堆啊!!!但是,没有现成的源码。而且大部分都是提问的,不过我从别人的解答中似乎说到要把什么什么参数传给下一页,否则就不能正常显示。我看了这个以后仔细分析了一下web请求,发现这个是对的。我按照那个提示自己又是了一下,发现还真是对的。哈哈。。。至此大功告成。不过解决了这个问题,我的脑子中就有个问题了,怎么样才能吧参数穿给下一页,这种传参数的方式又有多少种呢?百思不得其解!!!!!!!!希望高手指点一下!在此先谢谢了!
阅读(1791) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~