请登录[¤ 阳光论坛 ¤]参与讨论


阳光宝宝
90

 □ 主题: 学习ASP编程必会的代码
 □ 内容: 1楼

      ASP课堂上学到的程序设计,都是按照语法和对象来一点一点的学习的,到最后编程的时候,新手根本想不出来要怎么来组合才能完成一个模块,下面把这些语法按照程序员常用的模块方式组合起来,请大家按照模块来记忆,然后按照模块来应用,不一定要一个一个字母的背下来,关键是用到这些模块的时候能准确的,拿出来,安上去! 
       
      注意下面的标点符号,全部都为英文中的半角符号,如果写成了全角的就一定运行不起来了,切忌切忌…… 
       
      1、常用写法 
      (1)ASP开始结束符语法:<% %> 文件后缀.asp 
      (2)Request.form("title") ''获取表单中的一个输入框name叫title的值 
      (3)Request.querystring("title") ''获取连接中的一个参数title=后面的值 
       
      (4)dim str 
      str="我爱你" 
      response.write(str) ''向屏幕输出 
      (5) response.write "ok 程序运行到这里了!" 
       
      (6) sql="select * from news"  
      response.write sql 
      ''调试和查看sql语句写法是否正确的语句常用到 
       
      (7)Response.Redirect("login.asp") ''跳转到另外一个页面 
      (8)response.redirect("admin.asp") ''转到后台 
      (9)Response.end ''程序输出截至,不显示该条语句下面的内容了 
      (10)Response.Write("<script>alert(''???!'')</script>")''弹出提示窗口 
       
      2、判断语句 
      (1)判断表单传来的用户名和密码是否正确,并提示 
      If request("username")="admin" then 
      Response.write"恭喜,你已经登录成功" 
      Else 
      Response.write"对不起,您输入的用户名错误,请返回重输入" 
      End if 
       
      (2)同时判定用户名和密码都正确就转入到后台,否则退回到从新输入页面 
      If request("name")="admin" and request("pass")="admin" then 
      Response.redirect"admin.asp" 
      Else 
      Response.redirect"login.asp" 
      End if 
       
      (3)变量值和字符串值合起来用& 
      a="我" 
      b="爱" 
      c="你" 
      response.write a&b&c&"妈妈" 
       
      3、循环语句:循环显示6条数据库中的记录 
      (1)写法1: 
      do while not rs.eof  
      response.write "<br><font color=#000000>"&rs("title")&"</font><br>" 
      rs.movenext 
      loop 
      (2)写法二: 
      for n=1 to 6 
      response.write rs("title")&"<br>" 
      if rs.eof then  
      exit for ''跳出for循环 
      else 
      rs.movenext ''记录集下移一条 
      end if 
      next 
       
      4、常用变量转换函数 
      Now() 函数返回系统时间 
      Date() 函数返回当前系统日期. 
      CStr(int) 函数转化一个表达式为字符串 
      CInt(string) 将一个表达式转化为数字类型 
      Trim(request("username")) 函数去掉字符串左右的空格 
      Left(rs("title"),10)&"..." 函数返回字符串左边第10个字符以前的字符(含第length个字符),一般在限制新闻标题的显示长度的时候用 
      Len(string) 函数返回字符串的长度. 中文字符长度也计为一 
      request.serverVariables("remote_host")''取得来访问的IP 
      mid(str,起始字符,[读取长度]):截取字符串中间子字符串  
      right(str,nlen):从右边起截取nlen长度子字符串  
      Lcase(str):字符串转成小写  
      Ucase(str):字符串转成大写  
      Ltrim(str):去除字符串左侧空格 
      Rtrim(str):去除字符串右侧空格  
      replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]): 
      替换字符串  
      注:默认值:起始字符 1;替代次数 不限;比较方法 区分大小写(0)  
      InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串 可选参数需同时选 返回起始位置
——
      
争分夺秒背单词 → eastern  a.东方的;朝东的
 □ 发帖时间:2011-6-14|16:35:16 |回复|返回|



阳光宝宝
90

 □ 主题: 回应:学习ASP编程必会的代码
 □ 内容: 2楼

      5、Access数据库连接代码 
      (1)方法一: 
      db="mydata.mdb" ''如果放在目录中,就要写明"database/mydata.mdb" 
      Set conn = Server.CreateObject("ADODB.Connection") 
      cServer.MapPath(db) 
      conn.Open connstr 
       
      (2)方法二: 
      ''如果你的服务器采用较老版本Access驱动,请用下面连接方法 
      db="mydata.mdb" ''如果放在目录中,就要写明"database/mydata.mdb" 
      Set conn = Server.CreateObject("ADODB.Connection") 
      c & Server.MapPath(db) 
      conn.Open connstr 
       
      6、标准的用Sql语句和asp操作数据的常用写法 
      包括取全部记录 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select * from news" 
      Rs.Open SqlStr,conn,1,1 ''运行sql语句,把数据提出到rs对象中 
       
      选取几条数据 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select top 6 * from news" 
      Rs.Open SqlStr,conn,1,1 ''运行sql语句,把6条数据提出到rs对象中 
       
      选取一条指定表中id字段数值的数据 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select * from news where id="&request("id") 
      Rs.Open SqlStr,conn,1,1 ''运行sql语句,把6条数据提出到rs对象中 
       
      获取一条表单传过来的数据,然后加入到一个表当中 
      dim a,b,c,d 
      a=request.form("a") 
      b=request("b") 
      c=request("c") 
      d=request("d") 
      sqlstr100000="insert into huiyuanbiao(yonghuming,mima,wenti,daan) values(''"&a&"'',''"&b&"'',''"&c&"'',''"&d&"'')" 
      conn.execute sqlstr100000 
      response.write"恭喜,新数据加入成功!" 
       
      修改一条指定表中id字段数值的数据,用表单传过来的数据替换 
      dim a,d,e 
      a=request("id") 
      d=request.form("d") 
      e=request.form("e") 
      sqlstr="update huiyuanbiao set yonghuming=''"&d&"'',mima=''"&e&"'' where id="&a 
      response.write sqlstr 
      conn.execute sqlstr 
      response.write"恭喜,数据修改成功!" 
       
       
      删除一条指定表中id字段数值的数据 
      dim a 
      a=request("delid") 
      sqlstr="delete from huiyuanbiao where id="&a 
      conn.execute sqlstr 
      response.write"恭喜,删除成功!" 
       
      7、用Recordset对象和asp操作数据库的常用写法 
      (1)用sql语句,取出news表中所有的数据放到rs中,按照数据库默认排序 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select * from news" 
      Rs.Open SqlStr,conn,1,1 
       
      (2)取出news表中前6条数据放到rs中,按照数据库默认排序方式 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select top 6 * from news" 
      Rs.Open SqlStr,conn,1,1 
       
      (3)循环显示6条rs对象中存在的数据,列表显示 
       
      不带连接的写法 
      for n=1 to 6 
      response.write rs("title")&"<br>" 
      if rs.eof then  
      exit for 
      else 
      rs.movenext 
      end if 
      next 
       
      带连接的写法 
      for n=1 to 6 
      response.write "<a href=show.asp?id=rs("id")>"& left(rs("title"),20)&"</a><br>" 
      if rs.eof then  
      exit for 
      else 
      rs.movenext 
      end if 
      next 
       
      (4)向数据库添加一条数据代码 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select * from news" 
      Rs.Open SqlStr,conn,1,3''注意这里的1,3代表可以写入的打开数据表 
      Rs.addnew 
      Rs("title")=trim(request.form("title")) 
      Rs("neirong")=request.form("neirong") 
      Rs("date")=now()  
      rs.update ''真正写入数据库 
       
      (5)修改一条记录的代码,通过(2)中的连接传递过来了id数值 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select * from news where id="&request("id") 
      Rs.Open SqlStr,conn,1,3 ''注意这里的1,3代表可以写入的打开数据表 
      Rs("title")=trim(request("title")) 
      Rs("neirong")=request("neirong") 
      Rs("date")=now()  
      rs.update ''真正写入数据库 
       
      (6)删除数据库中一条记录,通过连接传递过来了数据得id数值 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select * from news where id="&request("id") 
      Rs.Open SqlStr,conn,1,3 ''注意这里的1,3代表可以写入的打开数据表 
      rs.delete ''删除该条数据 
       
      8、当点击按钮时候表单带着的数据传送到哪个文件,在哪里指定? 
       
      <form method="post" action="addsave.asp"> 
      <input type="text" name="a"> 
      <input type="text" name="b"> 
      <input type="submit" name="Submit" value="提交"> 
      </form> 
      
——
      
争分夺秒背单词 → employee  n.受雇者,雇员,雇工
 □ 发帖时间:2011-6-14|16:35:47 |回复|返回|



阳光宝宝
90

 □ 主题: 回应:学习ASP编程必会的代码
 □ 内容: 3楼

      9、表单提交来的数据接收并显示到屏幕上的代码 
      response.write request.form("a") 
      response.write now() 
      response.write trim(request.form("b")) 
       
      10、利用Application对象作计数器的语法 
       
      在网页的头部加入 
      Application.Lock 
      Application("counter") = Application("counter") + 1 
      Application.UnLock 
      在需要显示计数内容的网页的地方,加入下面的语句 
      response.write Application("counter")  
       
      
——
      
争分夺秒背单词 → intellect  n.理智,智力,才智
 □ 发帖时间:2011-6-14|16:36:26 |回复|返回|



阳光宝宝
90

 □ 主题: 回应:学习ASP编程必会的代码
 □ 内容: 4楼

      11、利用Session对象保护后台管理页面admin.asp,防止未登陆用户进入 
       
      第一步、在网站后台网页需要权限保护的所有网页的头部加入下面的代码, 
      if session("admin")<>"ok" then 
      response.redirect"login.asp" 
      response.end 
      end if 
       
      第二步、在网站后台登陆页的检测表单发来的用户名和密码验证部分标准写法 
      AdmName=Request.Form("Name") 
      AdmPass=Request.Form("Pass")  
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="Select * from Admin where name=''"&AdmName&"'' and pass=''"&AdmPass&"''" 
      Rs.Open SqlStr,conn,1,3 
       
      if Rs.EOF AND RS.BOF then 
      Response.Redirect("login.asp") 
      response.end 
      else 
      session("admin")="ok" 
      Response.Redirect("admin.asp") 
      response.end 
      end if 
       
      12、分页代码 
      sql = "select……………………省略了你的从表中取出所有数据的sql语句写法 
       Set rs=Server.Createobject("ADODB.RECORDSET") 
       rs.Open sql, conn, 1, 1 
       if not rs.eof then 
         pages = 30 ''定义每页显示的记录数 
         rs.pageSize = pages ''定义每页显示的记录数 
         allPages = rs.pageCount ''计算一共能分多少页 
         page = Request.QueryString("page")''通过浏览器传递的页数 
         ''if语句属于基本的排错处理 
         if isEmpty(page) or Cint(page) < 1 then 
          page = 1 
         elseif Cint(page) > allPages then 
          page = allPages  
         end if 
         rs.AbsolutePage = page 
         Do while not rs.eof and pages > 0  
          ''这里输出你要的内容……………… 
         pages = pages - 1 
         rs.MoveNext 
         Loop 
       else 
        Response.Write("数据库暂无内容!") 
       End if 
       rs.Close 
       Set rs = Nothing 
      ''分页页码连接和跳转页码程序 
      <form Action="" Method="GET"> 
      <%  
      If Page <> 1 Then 
      Response.Write "<A HREF=?Page=1>第一页</A>” 
      Response.Write "<A HREF=?Page=" & (Page-1) & ">上一页</A>“ 
      End If 
      If Page <> allPages Then 
      Response.Write "<A HREF=?Page=" & (Page+1) & ">下一页</A>" 
      Response.Write "<A HREF=?Page=" & allPages & ">最后一页</A>" 
      End If 
      %> 
      输入页数:<input TYPE="TEXT" Name="Page" SIZE="3"> 页数:<font COLOR="Red"><%=Page%>/<%=allPages %></font>  
      </form> 
      13、分行列显示图片和产品名称的代码(4列x3行=12个) 
      <% 
      Set Rs=Server.CreateObject("ADODB.RecordSet") 
      SqlStr="select top 12 * from myproduct" 
      Rs.Open SqlStr,conn,1,1 
      i=1 
      %> 
      <table width="90%" border="1" cellspacing="0" sellpadding="0"> 
      <tr> 
      <%  
      do while not rs.eof 
      %> 
      <td align="center"> 
      <img src="<%=rs("imgurl")%>" width="52" height="120"><br> 
      <%=rs("productname")%> 
      </td> 
      <% if i mod 4=0 then response.write"</tr><tr>" 
      i=i+1 
      rs.movenext 
      loop 
      rs.close 
      %> 
      </tr> 
      </table> 
       
      
——
      
争分夺秒背单词 → primitive  a.远古的,未开化的
 □ 发帖时间:2011-6-14|16:39:15 |回复|返回|



阳光宝宝
90

 □ 主题: 回应:学习ASP编程必会的代码
 □ 内容: 5楼

      十四、ASP数据库连接之ACCESS-SQLSERVER 
      <% 
      IsSqlData=0 ‘定义数据库类别,0为Access数据库,1为SQL数据库 
      If IsSqlData=0 Then 
      Access数据库  
      datapath ="data/" 数据库目录的相对路径 
      datafile ="data.mdb" 数据库的文件名 
      c&Server.MapPath(""&datapath&""&datafile&"") 
      C&server.mappath(""&datapath&""&datafile&"")&";DRIVER={Microsoft Access Driver (*.mdb)};" 
      Else 
      SQL数据库  
      SqlLocalName ="(local)" 连接IP [ 本地用 (local) 外地用IP ] 
      SqlUsername ="sa" 用户名 
      SqlPassword ="1" 用户密码 
      SqlDatabaseName="data" 数据库名 
      C & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";" 
      END IF 
      On Error Resume Next 
      Set conn=Server.CreateObject("ADODB.Connection") 
      conn.open ConnStr 
      If Err Then 
      err.Clear 
      Set Conn = Nothing 
      Response.Write "数据库连接出错,请检查连接字串。" 
      Response.End 
      End If 
      %> 
       
       
      <!-- 判断网址是否合格并处理 --> 
      <% 
      url=trim(request.form("url")) 
      if left(url,7)<>"http://" then 
      url="http://"&url 
      end if 
      %> 
       
      <!-- 显示时间为几月几日并处理 --> 
      <% 
      y=Month(date()) 
      r=Day(date()) 
      if len(y)=1 then y="0" & y 
      if len(r)=1 then r="0" & r 
      Response.Write y & "月" & r & "日"  
      %> 
       
      <!-- 限制某些IP访问网站 --> 
      <%  
      url_str=Request.ServerVariables("REMOTE_ADDR") 
      url=split(url_str,".") 
      if url(0)=127 and url(1)=0 and url(2)=0 and url(3)>0 and url(3)<256 then 
      else 
      response.Write(url_str) 
      end if 
      %> 
       
      <!-- 设置文章显示格式 --> 
      <% 
      function HTMLEncode(fString) 
      if not isnull(fString) then 
      fString = replace(fString, ">", ">") 
      fString = replace(fString, "<", "<") 
      fString = Replace(fString, CHR(32), " ") 
      fString = Replace(fString, CHR(9), " ") 
      fString = Replace(fString, CHR(34), """) 
      fString = Replace(fString, CHR(39), "''") 
      fString = Replace(fString, CHR(13), "") 
      fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ") 
      fString = Replace(fString, CHR(10), "<BR> ") 
       
      HTMLEncode = fString 
      end if 
      end function 
      %> 
       
      1. ASP与Access数据库连接: 
      <% 
      dim conn,mdbfile 
      mdbfile=server.mappath("数据库名称.mdb") 
      set conn=server.createobject("adodb.connection") 
      conn.open "driver={microsoft access driver  
      (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile 
      %> 
      2. ASP与SQL数据库连接: 
      <% 
      dim conn 
      set conn=server.createobject("ADODB.connection") 
      con.open "PROVIDER=SQLOLEDB;DATA  
      SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 
      %> 
       
      建立记录集对象: 
       
      set rs=server.createobject("adodb.recordset") 
      rs.open SQL语句,conn,3,2 
       
      3. SQL常用命令使用方法: 
      (1) 数据记录筛选: 
      sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" 
      sql="select * from 数据表 where 字段名 like ''%字段值%'' order by 字段名 [desc]" 
      sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" 
      sql="select * from 数据表 where 字段名 in (''值1'',''值2'',''值3'')" 
      sql="select * from 数据表 where 字段名 between 值1 and 值2" 
       
      (2) 更新数据记录: 
      sql="update 数据表 set 字段名=字段值 where 条件表达式" 
      sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" 
       
      (3) 删除数据记录: 
      sql="delete from 数据表 where 条件表达式" 
      sql="delete from 数据表" (将数据表所有记录删除) 
       
      (4) 添加数据记录: 
      sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" 
      sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) 
       
      (5) 数据记录统计函数: 
      AVG(字段名) 得出一个表格栏平均值 
      COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 
      MAX(字段名) 取得一个表格栏最大的值 
      MIN(字段名) 取得一个表格栏最小的值 
      SUM(字段名) 把数据栏的值相加 
      引用以上函数的方法: 
      sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" 
      set rs=conn.excute(sql) 
      用 rs("别名") 获取统的计值,其它函数运用同上。 
       
      (6) 数据表的建立和删除: 
      Create TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 
      
——
      
争分夺秒背单词 → tiresome  a.使人厌倦的,讨厌的
 □ 发帖时间:2011-6-14|16:39:41 |回复|返回|

 页次:1/1页 每页10  本主题贴数4 分页: 1


你还没有登录论坛,所以不能发表你的意见。你可以选择:

1、我已注册,我要

2、我还没注册,我要

3、太麻烦了,我还是

Go Top

Copyright by(C)2003-2015 http://abc.sy578.cn