程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 使用asp+中的若干問題及解決方案

使用asp+中的若干問題及解決方案

編輯: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="查詢" OnClick="query_OnClick" 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 = "[email protected]";  //信件的接收人    mailMsg.From = "[email protected]";  //發
信人    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+ 努力吧,朋友們

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved