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