ASP.NET學(xué)習(xí)篇(3)——幾個(gè)簡(jiǎn)單的ASP.ENT的例子_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

      推薦:ASP.NET學(xué)習(xí)篇(2)——安裝與配置
      介紹以下方面內(nèi)容:安裝所需要的軟硬件條件。配置CONFIG.WEB(配置文件的寫法及各項(xiàng)配置的意義) ASP的運(yùn)行需要一個(gè)環(huán)境,可以是PWS,也可以是IIS,ASP.NET需要的是NGWS(安裝程序下載) 這是

      一個(gè)WEBFORM——這里將介紹ASP.NET WEBFORM的基本概念,以及其中表單項(xiàng)的變化。

      *一個(gè)數(shù)據(jù)庫(kù)的應(yīng)用——如何利用CONFIG.WEB中設(shè)置的DNS連接數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)操作對(duì)象的一些基本用法。

      *EMAIL發(fā)送——在 引入一個(gè)系統(tǒng)類庫(kù)后(用IMPORT 標(biāo)識(shí)符 ),利用msgMail對(duì)象,可以很方便的操作郵件發(fā)送過(guò)程。

      *上傳——<INPUT TYPE=FILE …… 這樣一個(gè)INPUT 項(xiàng)在ASP.NET中有POSTEDFILE屬性,結(jié)合SAVEAS 事件,就可以實(shí)現(xiàn)上傳了。

      一、 WEBFORM的使用

      以下為引用的內(nèi)容:

      <script language="C#" runat=server>

          void SubmitBtn_Click(Object sender, EventArgs e) {
            Message.Text = "Hi " Name.Text ", you selected: " Category.SelectedItem;
          }
      </script>

      以上是用C#寫的一個(gè)事件處理函數(shù),void SubmitBtn_Click(Object sender , EventArgs e) , void代表該函數(shù)沒(méi)有返回值,sender是事件中觸發(fā)的對(duì)象,在這里就是button對(duì)象,e是觸發(fā)事件的參數(shù)。該函數(shù)中的Message、Name、Category并沒(méi)有定義,它們來(lái)自下面的代碼:

      以下為引用的內(nèi)容:
          <form action="intro6.aspx" method="post" runat="server">
            <h3> Name: <asp:textbox id="Name" runat="server"/>
            Category: <asp:dropdownlist id="Category" runat=server>
                   <asp:listitem>psychology</asp:listitem>
                   <asp:listitem>business</asp:listitem>
                   <asp:listitem>popular_comp</asp:listitem>
                 </asp:dropdownlist>
            <asp:button type=submit text="Lookup" OnClick="SubmitBtn_Click" runat="server"/>
            <p>
            <asp:label id="Message" runat="server"/>
      </form>

      首先可以注意到表單的寫法和html表單完全不同.所有的表單項(xiàng)包括表單本身后面都加上了runat=server,這一屬性說(shuō)明這是服務(wù)器端控制項(xiàng),原先的文本輸入,下拉菜單等的寫法也變了。在這里采用的是:

      <asp:<控件類別> id=[ID] 屬性= runat="server"/>

      控件的種類有很多(所有控件的列表可以附錄中找到),各個(gè)控件的屬性當(dāng)然不一樣,這會(huì)在今后詳細(xì)介紹,上面的代碼中,我們可以看見(jiàn)的有textbox、button的id、text屬性,以及dropdownlist的SelectedItem屬性(注意:這個(gè)屬性只針對(duì)C#,在VB中,要用SelectedItem.Text屬性來(lái)作為相應(yīng)的代替)。

      這里出現(xiàn)了一個(gè)服務(wù)器端控制<asp:label id=”Message” runat=”server”/>,這個(gè)asp:label是傳統(tǒng)表單所沒(méi)有的,它是一個(gè)服務(wù)器端文本控制,那么就存在一個(gè)問(wèn)題,如果傳統(tǒng)的HTML里沒(méi)有這個(gè)元素,那么ASP 是怎么接收的呢?你運(yùn)行一下這個(gè)程序,然后看一下HTML源碼,你會(huì)發(fā)現(xiàn)這么一行:

      <INPUT type="hidden" name="__VIEWSTATE" value="a0z-1715863018__x">

      對(duì),ASP 就是通過(guò)這個(gè)隱藏表單的形式傳遞過(guò)去的。另外,在提交后你可以發(fā)現(xiàn)在文本框中填寫的內(nèi)容,以及下拉菜單的選擇都被保留下來(lái)了,這在ASP中需要代碼來(lái)實(shí)現(xiàn)。

      需要提出的一點(diǎn),在ASP.NET中,還可以有另一種方式添加服務(wù)器端控件:

      以下為引用的內(nèi)容:
      <script language="C#" runat=server>
      void AddText(){
      TextBox text1=new TextBox();
      text1.Text="TEST";
      ……
      }
      </script>

      這一段代碼添加了一個(gè)TextBox控件。更多內(nèi)容,可參看: 什么是ASP.NET的WEBFORM

      二、一個(gè)數(shù)據(jù)庫(kù)連接的例子

      使用DNS連接,代碼,說(shuō)明

      CONFIG.WEB 中的設(shè)置:

      以下為引用的內(nèi)容:

      <appsettings>
      <add key="MyConn" value="server=localhost;uid=sa;pwd=mypassword;
      Database=somedatabase"/>
        </appsettings> 
      **********************************************************
      <%@ Import Namespace="System.Data" %>
      <%@ Import Namespace="System.Data.SQL" %>
      <script language="VB" runat="server">
      Sub Page_Load(Src As Object, E As EventArgs)
      Dim MyConnection As SQLConnection
      ‘SQLSERVER 的連接對(duì)象
      Dim Config as HashTable
      ’定義一個(gè)本地變量
      Config = Context.GetConfig("appsettings")
      ’用本地變量來(lái)保存DSN連接字符串變量
      MyConnection = New SQLConnection(Config("MyConn"))
      ‘建立連接
      Dim MyCommand As SQLCommand
      ’申明一個(gè)Command對(duì)象來(lái)往database中插入數(shù)據(jù)

      dim parm1 as string = "SomeTextValue"
      dim parm1 as string = "SomeTextValue2"

      Dim InsertCmd As String = "Insert into tablename values (@parm1, @parm2)"

      'Using the connection string
      '使用連接字符串
      MyCommand = New SQLCommand(InsertCmd, MyConnection)

      MyCommand.Parameters.Add(New SQLParameter("@Parm1", SQLDataType.VarChar, 50))
      MyCommand.Parameters("@Parm1").Value = Parm1

      MyCommand.Parameters.Add(New SQLParameter("@Parm2", SQLDataType.VarChar, 50))
      MyCommand.Parameters("@Parm2").Value = Parm2

      MyCommand.ActiveConnection.Open()
      MyCommand.Execute()
      MyCommand.ActiveConnection.Close()

      End Sub
      </script>

      在以上的代碼中,在利用CONFIG.WEB中設(shè)置的DNS建立連接后,又用一個(gè)COMMAND 的對(duì)象完成了插入數(shù)據(jù)的操作.和從前的ADO沒(méi)什么不同,只是對(duì)象名字有些改變。

      三、一個(gè)發(fā)送郵件的例子

      下面給出一段代碼,非常容易的實(shí)現(xiàn)了發(fā)送一封HTML格式,帶有附件的EMAIL。而不象ASP中需要自己編寫組件來(lái)實(shí)現(xiàn)。

      以下為引用的內(nèi)容:
      <% @Page Language="C#" %>
      <% @Import Namespace="System.Web.Util" %>
      <%
      MailMessage msgMail = new MailMessage();
      msgMail.To = "mail@mail.com";
      msgMail.Cc = "mail1@mail.com";
      msgMail.From = "webmaster@mail.com";
      msgMail.Subject = "Attachment ";
      msgMail.BodyFormat = MailFormat.Html;
      string strBody = "<b>here is an attachment</b>";
      msgMail.Body = strBody;
      msgMail.Attachments.Add(new MailAttachment("c:\\temp\\test.txt"));
      SmtpMail.Send(msgMail);
      Response.Write("Email 已經(jīng)發(fā)送成功");
      %>

      上面的代碼中,首先是引入System.Web.Util類庫(kù),這樣才能調(diào)用MailMessage對(duì)象,有關(guān)它的屬性的使用,上面的代碼中已經(jīng)很清楚了,要注意的地方有BodyFormat屬性在為MailFormat.Html時(shí),郵件正文是HTML格式,如果改為MailFormat.Text,則是文本格式,還有,請(qǐng)檢查你的SMTP服務(wù)的設(shè)置,郵件發(fā)送需要它的支持。

      四、一個(gè)上傳的例子

      ASP中上傳文件需要自己寫組件,代碼,說(shuō)明

      以下為引用的內(nèi)容:

      <html>
        <script language="VB" runat=server>

         Sub UploadBtn_Click(Sender as Object, E as EventArgs)

           UploadFile.PostedFile.SaveAs(Server.MapPath("test.jpg"))
           MyImage.ImageUrl = "test.jpg"
           MyImage.Visible = true

         End Sub

        </script>

        <body>
         <form enctype="multipart/form-data" runat=server>
           <h3>
        Select File To Upload: <input id="UploadFile" type=file runat=server>
        <asp:button Text="Upload Me!" OnClick="UploadBtn_Click" runat=server/>

           <hr>

           <asp:image id="MyImage" Visible=false runat=server/>

         </form>
        </body>
      </html>

      直接調(diào)用UploadFile對(duì)象(它所在的類庫(kù)是ASP.NET默認(rèn)的,所以不用額外的 Import 一個(gè) Namespace。)很容易的實(shí)現(xiàn)了上傳,不用象在ASP中那樣,要自己編寫上傳組件了。

      分享:ASP.NET學(xué)習(xí)篇(1)——開篇
      ASP.NET的簡(jiǎn)單介紹:strongly-typed 的語(yǔ)言的使用.代碼和內(nèi)容的真正分離服務(wù)器端的組件模型多種設(shè)備的兼容性…… 在這里我們只做簡(jiǎn)單的介紹,因?yàn)橄嚓P(guān)的文章隨處可見(jiàn)。 strongl

      來(lái)源:模板無(wú)憂//所屬分類:.Net教程/更新時(shí)間:2008-08-22
      相關(guān).Net教程