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

來源:互聯網
上載者:User
綜述:
在這篇文章裡 豆腐 簡單扼要的講了一下在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+ 努力吧,朋友們


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.