使用asp+中的若干问题及解决方案

综述:
在这篇文章里 豆腐 简单扼要的讲了一下在asp+编程中我们可能要遇到的问题以及遇到这些问题的解决方法,相信大家 在
看完这篇文章以后,对于asp+的编程就会觉得是非常的
简单,我在这篇文章文章中主要讲了一些比较中级的应用,如果您对于asp+目前还是处于入门阶段,建议您去
1 如何使用 asp+ 获取提交的form元素

我们首先来利用一个很简单的例子来说明 一下 asp+ 给我们带来的 server-side control 的好处
首先我们写一个form 为了方便起见,我不在 描述 <html> 等和我们的文章没有直接关系的标签

代码:
--------------------------------------------------------------------------------

    <SCRIPT language="VB" runat="server">      Sub test(Sender As Object, Args As
EventArgs)        'Sender , Args  这两个 参数是 click 事件的参数        Response.Write ("您的名称是 : '" &
txtName.value & "' .”)        Response.Write ("您填写的Email是: '" & txtEmail.value &"'.")      End
Sub    </SCRIPT>    <form method=post>      <table align = center>       <tr><td>        您的名称:<INPUT
type="text" id="txtName" runat="server">       </td></tr>       <tr><td>        您的Email 是:<INPUT
type="text" id="txtEmail" runat="server">       </td></tr>       <tr><td>         <INPUT type="submit"
value="提交" runat="server"            onserverclick="test">       </td></tr>      </table>        </form>

--------------------------------------------------------------------------------

这样我们写的程序 就如同 一个 vb 的 frm 一样(据说在 vb 7.0 中的确会增加这样的功能)
有的人也会说他们非常希望 和 以前的 asp 程序保持 连续性,没有关系,如果 您 不喜欢使用
txtName.Value 这样的语法的话,仍然可以使用 request.form(txtName),怎么样,够Cool 吧。

2。ASp+ 中处理 数据库

asp+ 引入了很多的 server-side 的数据库组件,就如同我们在 VB 的的数据库控件DBList,DBGrid 一样
如果在 VI 中使用过 RDS 组件的话,大家一定对MS 很早就想 推出的这个东东 有一个 大致的了解了,不过
asp+ 就是asp+ 不是asp,MS 确实有大动作在 asp 上做

代码:
--------------------------------------------------------------------------------

   <%@ Page Language="VB"%>   <%@ Import Namespace="System.Data" %>   <%@ Import
Namespace="System.Data.ADO" %>   <script language="VB" runat="server">     Sub search_OnClick(Sender As
Object, E As EventArgs)      '这底下的语句告诉我们,在ASp+ 中我们终于可以 放弃variant 这种效率低下的数据类
型了      Dim connobj As ADOConnection      Dim dtsCmdobj As ADODataSetCommand      Dim dtSobj As
DataSet      Dim str_sql As String      dim conn_str As String      str_sql = "select * from
table_name"      conn_str = "DBQ=" & Server.MapPath("database.mdb") &_                 ";Driver={Microsoft
Access Driver (*.mdb)};"      connobj = New ADOConnection(conn_str)      dtsCmdobj = New ADODataSetCommand
(str_sql, connobj)      dtSobj = New DataSet()      dtsCmdob.FillDataSet(dtsobj, "test")      
dtgrid.DataSource = dtsobj.Tables("test").DefaultView      dtgrid.DataBind()    End
Sub</script><html><body><form action="db.aspx" method="post" runat="server"><asp:Button type="submit"
id="query" text="查询" runat="server" /></form><asp:DataGrid id="dtgrid"
HeaderStyle-Font-Bold="True" ToolTip="data Grid provided with asp+" runat="server"
maintainviewstate="false" /></body></html>

--------------------------------------------------------------------------------

看到了吗??这不是VB 是什么???有的朋友可能在 VB 下就很不 习惯 VB 的 数据绑定,不错,Asp+也提供了 一个叫
做 DataSet 的集合(Object)
我们刚才也已经看到了,
我们可以不使用bDataBind() 方法,直接用 Response.write 写出来,Let's Look!

代码:
--------------------------------------------------------------------------------

   <%@import namespace="system.data.SQL"%>   <SCRIPT LANGUAGE="vb" RUNAT="server">   Sub displaydata()     
Dim dtReader AS SQLDataReader     Dim sqlcmd AS SQLCommand     Dim sqlserver AS String     Dim sql AS
String     sqlserver = "server=my.sql.database;uid=userid;password=password;"     SQL = "Select * from
table_name"     sqlcmd = New SQLCommand(sql,sqlserver)     sqlcmd.ActiveConnection.Open()     
sqlcmd.execute(dtreader)     Response.write("再进行数据库open后,我们来显示这个Table 的某一个字段的数
值")     While dbRead.Read()        response.write (dtreader.Item("test_column") & "<br>")     End While   
End Sub</SCRIPT>

--------------------------------------------------------------------------------

我们已经看到了 如何将数据库里的 数值从数据库中 读取出来,我们 再来看 一个例子,看看是如何
修改数据库的内容的

代码:
--------------------------------------------------------------------------------

  <%@ Import Namespace="System.Data" %>  <%@ Import Namespace="System.Data.SQL" %>  <HTML>  <BODY>   
<script language="VB" runat="server">        Sub Page_Load(Src as Object, E as
EventArgs )                    ‘这个事件在 页面载入的 时候 触发          Dim myConnection as
SQLConnection                myConnection = new SQLConnection("SERVER=sqlserver; UID=sa; PWD=;
DATABASE=test")                Dim myCommand as SQLCommand           dim sql as string          
sql="insert into test(testcol) values('1234')"          'sql="update test set
testcol='1234'"          'sql="delete from test"          myCommand = new SQLCommand("INSERT into test
(testCol) VALUES ('1234')", myConnection)                      myConnection.Open()                
myCommand.Execute()                myConnection.Close()                       Response.Write("更新数据成
功")        End Sub   </script>   </BODY>  </HTML>

--------------------------------------------------------------------------------

数据库搞完了,我们下面来看看 如何 进行一些 在 asp+ 无法实现的 功能
3.上传,发送Email 和 操作 socket
在前面的文章中,我已经举过了 上传和 操作socket 实现 域名查询的完整例子,在这里我们主要看
看用Asp 发送Email

代码:
--------------------------------------------------------------------------------

  <% @Page Language="C#" %>  <% @Import Namespace="System.Web.Util" %>  <%    MailMessage mailMsg = new
MailMessage();    mailMsg.To = "roboo@21cn.com";  //信件的接收人    mailMsg.From = "roboo@21cn.com";  //发
信人    mailMsg.Subject = "这是个用 asp+ 发送的 测试信件";    mailMsg.BodyFormat = MailFormat.Text;  //说明
信件的格式是 text 格式,我们当然可以设定 MailFormat.Html    mailMsg.Body = "带有附件的";    
mailMsg.Attachments.Add(new MailAttachment("c:\\test.bmp"));  //这就是 附件    SmtpMail.Send(mailMsg);   //
发信    Response.Write("邮件发送成功");%>

--------------------------------------------------------------------------------

4.在asp+中如何进行错误处理?
在asp 中 on error resume next 是我们唯一的处理方式,现在在asp+ 中又会是什么呢?

说来简单,只要我们在页面的前面添加这样的一句,问题就迎刃而解了
<%@page Errorpage = "/error.aspx"%>
当出现错误的时候,我们只要统一在 error.aspx 文件中处理即可
5 在asp+ 中处理文本文件,在asp 中我们用 fileSystemObject 很方便的就可以处理 文本文件,asp+ 在这个方面继续
发扬的更加方便

代码:
--------------------------------------------------------------------------------

    <%@ import namespace="system.io" %>    <html>     <head>      <title>ASP+ 中 测试读取 文本文件
</title>      </head>    <body>    <%      Dim readfile As StreamReader      Dim strIn As String    
readfile = File.OpenText( "c:\sample.txt" )    Do      strIn = readfile.ReadLine()      Response.Write(
strIn & "<br>" )    Loop Until strIn = Null    readfile.Close%></body></html>

--------------------------------------------------------------------------------

是不是很简单,下面再来看看 写文本文件

代码:
--------------------------------------------------------------------------------

  <%@ import namespace="system.io" %>  <html>   <head>     <title>ASP+ 测试 写 文本文件</title>   
</head>   <body>   <%      Dim writeFile As StreamWriter      writeFile = File.CreateText
( "c:\sample.txt" )      myWriter.WriteLine( "这是一个用asp+ 生成的文本文件" )      myWriter.WriteLine( "豆
腐制作,都是精品" )      myWriter.Close      Response.Write( "test.txt 创建 并 写入 成功!" )   %>   
</body>   </html>

--------------------------------------------------------------------------------

终于写完了,通过这篇文章 我们已经可以 根据 文章中 所涉及的 知识,材料和代码 已经可以开发
一个中等难度的 asp+ 站点了,当然 我这里 只是 一些简单的例子 和讲解,具体在 开发的 过程中
大家还是要靠自己 的努力的

如果你 错过了php,后来有因为 jsp 太难,就不要 放弃 asp+ 努力吧,朋友们

时间: 2024-10-28 11:58:10

使用asp+中的若干问题及解决方案的相关文章

ASP中Connection对像封装dll解决方案

connection|封装|解决 asp代码保密一直是令人头痛的问题,目前没有非常好的解决方案,无非用vb编译成dll,但工作量实在太大,于是一直苦苦寻求着另一种途径... 中午,突然灵感一发,"为什么不尝试用加密数据库?",通过对数据库设一个高强度的密码,然后用vb封装connection对像,将密码信息写在dll里,然后通过asp创建组件方式调用,就算人家拿了我的代码,也无法改动数据库! 于是,开始了一步步既痛苦又刺激的旅程.vb三四年前用过,而且菜得不再菜,为了找思路,就上网搜,

dw-如何在DW/asp中让重复记录横向重复3条记录,然后换行继续直到写入完所有

问题描述 如何在DW/asp中让重复记录横向重复3条记录,然后换行继续直到写入完所有 在做一个产品展示页,数据表名称为furniture_pro里面有若干产品(至少9个以上)现在希望用DW中重复区域这个功能展示这些产品,希望每行只有三个产品,不知道在Dw中怎么实现 解决方案 写一个两重循环,排完一行插入一个分割符 解决方案二: Repeat1__index=Repeat1__index+1 Repeat1__numRows=Repeat1__numRows-1 if (Repeat1__inde

手把手教你在ASP中使用SQL语句

sql|语句 五花八门的SQL产品多得要命,或许你早顾不得其它甩开袖子就动手干了.但你要同时采用ASP和SQL的话就可能会头晕.MySQL.SQL Server和mSQL都是绝佳的SQL工具,可惜,在ASP的环境下你却用不着它们来创建实用的SQL语句.不过,你可以利用自己掌握的Access知识以及相应的Access技能,再加上我们的提示和技巧,相信一定能成功地在你的ASP网页中加入SQL. 1. SELECT 语句 在SQL的世界里,最最基础的操作就是SELECT 语句了.在数据库工具下直接采用

ASP中Dictionary对象简介以及使用方法

ASP中的Dictionary 对象简介以及使用方法 Dictionary 对象用于在结对的名称/值中存储信息((等同于键和项目).Dictionary 对象看似比数组更为简单,然而 ,Dictionary 对象却是更令人满意的处理关联数据的解决方案. 首先我们来看看Dictionary 和数组的对比分析: 键用于识别 Dictionary 对象中的项目 无需调用 ReDim 来改变 Dictionary 对象的尺寸 当从 Dictionary 删除一个项目时,其余的项目会自动上移 Dictio

ASP中正则表达式的应用

正则|正则 一.正则表达式概述 二.正则表达式在VBScript中的应用 三.正则表达式在VavaScript中的应用 四.示例 五.总结 一.正则表达式概述 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉.不过,它们并不是您想象的那么新奇. 请回想一下在硬盘上是如何查找文件的.您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件.? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符.一个如 'data?.dat' 的模式可以找到下述文件:data1.dat.data

解决ASP中Connection对像封装dll问题

     asp代码保密一直是令人头痛的问题,目前没有非常好的解决方案,无非用vb编译成dll,但工作量实在太大,于是一直苦苦寻求着另一种途径,本文详细介绍关于解决ASP中Connection对像封装dll问题的文章专题. 中午,突然灵感一发,"为什么不尝试用加密数据库?",通过对数据库设一个高强度的密码,然后用vb封装connection对像,将密码信息写在dll里,然后通过asp创建组件方式调用,就算人家拿了我的代码,也无法改动数据库! 于是,开始了一步步既痛苦又刺激的旅程.vb三

ASP中正则表达式的应用-1

正则 一.正则表达式概述 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉.不过,它们并不是您想象的那么新奇. 请回想一下在硬盘上是如何查找文件的.您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件.? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符.一个如 'data?.dat' 的模式可以找到下述文件:data1.dat.data2.dat等等.如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量.'data*.dat' 可以匹配下述所有文件名:data.d

ASP中实现文件上传方法的研究

上传 摘要:在基于浏览器/服务器的应用环境中,在浏览器中上传各种类型的文件一直是困扰用户文件管理应用的难题之一.在HTTP中上传文件有三种机制:RFC1867,PUT和WebDAV.常用的实现方法是利用在RFC1867中引入的一个新类型:File以及ADO Stream对象.本文对上述上传方法及实现原理作了论述,并给出了具体解决实例. 关键词:ASP 组件 FILE对象 当前,基于浏览器/服务器模式的应用比较流行.当用户需要将文件传输到服务器上时,常用方法之一是运行FTP服务器并将每个用户的FT

在ASP中操作数据库的方法

在ASP中,用来存取数据库的对象统称ADO对象(ActiveDataObjects),主要含有三种对象:Connection.Recordset和Command,其中Connection负责打开或连接数据库,Recordset负责存取数据表,Command负责对数据库执行行动查询(ActionQuery)命令和执行SQLServer的StoredProcedure.只依靠这三个对象还是无法存取数据库的,还必须具有数据库存取的驱动程序:OLEDB驱动程序和ODBC驱动程序.对于任何一种数据库都必须