精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的技巧★>>提问&回答>>使用asp+中的若干问题及解决方案

主题:使用asp+中的若干问题及解决方案
发信人: dongbao()
整理人: dongbao(2002-04-19 17:09:57), 站内信件
/*
如果您想转载 这篇文章,请注意不要删除这句话,以表示 对 豆腐 工作的 尊重

www.asp888.net 豆腐技术站
豆腐制作 都是精品
*/
综述:
在这篇文章里 豆腐 简单扼要的讲了一下在asp+编程中我们可能要遇到的问题以
及遇到这些问题的解决方法,相信大家 在看完这篇文章以后,对于asp+的编程就
会觉得是非常的
简单,我在这篇文章文章中主要讲了一些比较中级的应用,如果您对于asp+目前
还是处于入门阶段,建议您去www.asp888.net或者www.chinaasp.com/sqlbbs的精
华区看看豆腐的几篇关于asp+ 的入门文章,赶快学习asp+ 吧,他已经流行 3 个
月了,快!!!!
1 如何使用 asp+ 获取提交的form元素

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


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

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

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


这样我们写的程序 就如同 一个 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" runa
t="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 Stri
ng      dim conn_str As String      str_sql = "select * from table_nam
e"      conn_str = "DBQ=" & Server.MapPath("database.mdb") &_         
        ";Driver={Microsoft Access Driver (*.mdb)};"      connobj = Ne
w ADOConnection(conn_str)      dtsCmdobj = New ADODataSetCommand(str_s
ql, connobj)      dtSobj = New DataSet()      dtsCmdob.FillDataSet(dts
obj, "test")      dtgrid.DataSource = dtsobj.Tables("test").DefaultVie
w      dtgrid.DataBind()    End Sub</script><html><body><form action="
db.aspx" method="post" runat="server"><asp:Button type="submit" id="qu
ery" text="查询" OnClick="query_OnClick" runat="server" /></form><asp:
DataGrid id="dtgrid" HeaderStyle-Font-Bold="True" ToolTip="data Grid p
rovided with asp+" runat="server" maintainviewstate="false" /></body><
/html>

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


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

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

   <%@import namespace="system.data.SQL"%>   <SCRIPT LANGUAGE="vb" RUN
AT="server">   Sub displaydata()     Dim dtReader AS SQLDataReader    
 Dim sqlcmd AS SQLCommand     Dim sqlserver AS String     Dim sql AS S
tring     sqlserver = "server=my.sql.database;uid=userid;password=pass
word;"     SQL = "Select * from table_name"     sqlcmd = New SQLComman
d(sql,sqlserver)     sqlcmd.ActiveConnection.Open()     sqlcmd.execute
(dtreader)     Response.write("再进行数据库open后,我们来显示这个Table
 的某一个字段的数值")     While dbRead.Read()        response.write (d
treader.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 SQLCon
nection                myConnection = new SQLConnection("SERVER=sqlser
ver; UID=sa; PWD=; DATABASE=test")                Dim myCommand as SQL
Command           dim sql as string          sql="insert into test(tes
tcol) values('1234')"          'sql="update test set testcol='1234'"  
        'sql="delete from test"          myCommand = new SQLCommand("I
NSERT 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 = "robo
[email protected]"; //信件的接收人 mailMsg.From = "[email protected]"; //发
信人 mailMsg.Subject = "这是个用 asp+ 发送的 测试信件"; mailMsg.
BodyFormat = MailFormat.Text; //说明信件的格式是 text 格式,我们当然可
以设定 MailFormat.Html mailMsg.Body = "带有附件的"; mailMsg.Atta
chments.Add(new MailAttachment("c:\\test.bmp")); //这就是 附件 Smt
pMail.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>      <tit
le>ASP+ 中 测试读取 文本文件</title>      </head>    <body>    <%
Dim readfile As StreamReader Dim strIn As String readfile = F
ile.OpenText( "c:\sample.txt" ) Do strIn = readfile.ReadLine()
Response.Write( strIn & "<br>" )    Loop Until strIn = Null    r
eadfile.Close%></body></html>

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

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


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

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

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



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

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



 

--
ICQ:43395237 OICQ:126132  
我自豪我用正版,我骄傲我用盗版!!! 

※ 来源:.月光程序代码网 http://www.moon-soft.com.[FROM: 202.108.2.77]

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]