ASP.NET學習篇(3)——幾個簡單的ASP.ENT的例子

2021-01-09 站長之家
ASP.NET學習篇(3)——幾個簡單的ASP.ENT的例子

一個WEBFORM——這裡將介紹ASP.NET WEBFORM的基本概念,以及其中表單項的變化。

*一個資料庫的應用——如何利用CONFIG.WEB中設置的DNS連接資料庫,資料庫操作對象的一些基本用法。

*EMAIL發送——在 引入一個系統類庫後(用IMPORT 標識符 ),利用msgMail對象,可以很方便的操作郵件發送過程。

*上傳——<INPUT TYPE=FILE …… 這樣一個INPUT 項在ASP.NET中有POSTEDFILE屬性,結合SAVEAS 事件,就可以實現上傳了。

一、 WEBFORM的使用

以下為引用的內容:

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

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

以上是用C#寫的一個事件處理函數,void SubmitBtn_Click(Object sender , EventArgs e) , void代表該函數沒有返回值,sender是事件中觸發的對象,在這裡就是button對象,e是觸發事件的參數。該函數中的Message、Name、Category並沒有定義,它們來自下面的代碼:

以下為引用的內容:
    <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表單完全不同.所有的表單項包括表單本身後面都加上了runat=server,這一屬性說明這是伺服器端控制項,原先的文本輸入,下拉菜單等的寫法也變了。在這裡採用的是:

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

控制項的種類有很多(所有控制項的列表可以附錄中找到),各個控制項的屬性當然不一樣,這會在今後詳細介紹,上面的代碼中,我們可以看見的有textbox、button的id、text屬性,以及dropdownlist的SelectedItem屬性(注意:這個屬性只針對C#,在VB中,要用SelectedItem.Text屬性來作為相應的代替)。

這裡出現了一個伺服器端控制<asp:label id=」Message」 runat=」server」/>,這個asp:label是傳統表單所沒有的,它是一個伺服器端文本控制,那麼就存在一個問題,如果傳統的HTML裡沒有這個元素,那麼ASP+是怎麼接收的呢?你運行一下這個程序,然後看一下HTML源碼,你會發現這麼一行:

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

對,ASP+就是通過這個隱藏表單的形式傳遞過去的。另外,在提交後你可以發現在文本框中填寫的內容,以及下拉菜單的選擇都被保留下來了,這在ASP中需要代碼來實現。

需要提出的一點,在ASP.NET中,還可以有另一種方式添加伺服器端控制項:

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

這一段代碼添加了一個TextBox控制項。更多內容,可參看: 什麼是ASP.NET的WEBFORM

二、一個資料庫連接的例子

使用DNS連接,代碼,說明

CONFIG.WEB 中的設置:

以下為引用的內容:

<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 的連接對象
Dim Config as HashTable
』定義一個本地變量
Config = Context.GetConfig("appsettings")
』用本地變量來保存DSN連接字符串變量
MyConnection = New SQLConnection(Config("MyConn"))
『建立連接
Dim MyCommand As SQLCommand
』申明一個Command對象來往database中插入數據

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中設置的DNS建立連接後,又用一個COMMAND 的對象完成了插入數據的操作.和從前的ADO沒什麼不同,只是對象名字有些改變。

三、一個發送郵件的例子

下面給出一段代碼,非常容易的實現了發送一封HTML格式,帶有附件的EMAIL。而不象ASP中需要自己編寫組件來實現。

以下為引用的內容:
<% @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 已經發送成功");
%>

上面的代碼中,首先是引入System.Web.Util類庫,這樣才能調用MailMessage對象,有關它的屬性的使用,上面的代碼中已經很清楚了,要注意的地方有BodyFormat屬性在為MailFormat.Html時,郵件正文是HTML格式,如果改為MailFormat.Text,則是文本格式,還有,請檢查你的SMTP服務的設置,郵件發送需要它的支持。

四、一個上傳的例子

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

以下為引用的內容:

<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>

直接調用UploadFile對象(它所在的類庫是ASP.NET默認的,所以不用額外的 Import 一個 Namespace。)很容易的實現了上傳,不用象在ASP中那樣,要自己編寫上傳組件了。

相關焦點

  • ASP.Net安裝簡明手冊
    OK,以上就是我安裝ASP.Net的過程,由於我也是剛剛學習,難免會有不正確的地方,還請大家指證。其他網站找到的安裝資料(一)終於空下一段時間,可以學一些新東西,看了一下有關asp+的相關資料,覺得很值得學一下,所以就一邊學習一邊寫下這個教程,對於自己來說,可以作為學習筆記,對於別人,尤其是那些E文不太好的朋友可以作為一個可看的中文資料吧,起個拋磚引玉的作用。由於水平所限,錯誤在所難免,希望大家能批評指正。
  • 如何實現Asp與Asp.Net共享Session
    中,Session的存儲機制已經與Asp的存儲機制不一樣,雖然可以在同一個IIS下同時運行asp與aspx,但是它們之間不能傳遞Session。之前大批系統應用到了asp,在升級過程中,如果完全拋棄asp來重寫,一來工作量太大,二來以前的成果不能保存下來。所以微軟提出了一個Session共享的解決方案,只是此文檔光說明原理,並沒有說具體的操作步驟,由此,我撰文描述過程。
  • 在ASP.NET中使用SQL的IN操作
    這篇文章將建立一列包含CheckBox控制項的DataGrid,這個控制項允許用戶對明細瀏覽進行多列選擇。如果沒有恢復對於動態SQL獲得該功能的一種方法,那麼必須使用IN操作。
  • asp.net core 5.0 中的 JsonConsole
    asp.net core 5.0 中的 JsonConsoleIntroasp.net core 5.0 中日誌新增了 JsonConsole,還是輸出日誌到 Console,但是會應用 Json 格式的一個 Formatter 把日誌格式化成 json 再輸出到控制臺
  • 自學MVC看這裡——全網最全ASP.NET MVC 教程匯總
    小編特意整理博客園乃至整個網絡最具價值的MVC技術原創文章,為想要學習ASP.NET MVC技術的學習者提供一個整合學習入口。本文從Why,What,How三個角度整理MVC 的學習資源,讓學習者第一時間找到最有價值的文章,獲取最徹底的ASp.NET MVC 框架知識,Let’s go!1.
  • ASP初學者學習ASP指令
    首頁 > 語言 > 關鍵詞 > asp最新資訊 > 正文 ASP初學者學習ASP指令
  • ASP.NET定製簡單的錯誤處理頁面
    首頁 > 語言 > 關鍵詞 > asp最新資訊 > 正文 ASP.NET定製簡單的錯誤處理頁面
  • ASP.NET Core Identity Hands On(2)——註冊、登錄、Claim
    > 上一篇文章(ASP.NET Core Identity Hands On(1)——Identity 初次體驗)中,我們初識了Identity,並且詳細分析了AspNetUsers用戶存儲表,這篇我們將一起學習
  • 簡明 ASP.NET Core 手冊
    編者:在4月份推送過這篇文章 簡明 ASP.NET Core 手冊 ,今天再次推薦這篇文章,是因為原作者更新到了新版本1.1.0,改動很大,幾乎所有章節都有很大程度的調整
  • 目前中國網站服務端開發主要有PHP、asp.net、Java三種語言
    通過各招聘網站招聘程式設計師的類型統計得出結果是目前中國網站服務端開發主要有PHP、asp.net、Java三種語言,其他佔少數有潛力有C#,C++等,而Python也開始被開發者使用在服務端開發。從招聘的數據信息顯示,PHP編程開發主要集中在中小網站,個人站點,個人博客等開發,而政府網站更喜歡asp.net開發,Java則主要在電商,支付系統,安全數據的等方面有優勢。
  • NET開發-ASP.NET WebForm應用程式中,使用C#操作TextBox的屬性
    ID屬性ID屬性是每個asp.net每個伺服器控制項必須具備的屬性,用來指定控制項的唯一ID值。TextBox控制項的ID值最好以「txt+有意義的單詞」組成,便於後臺C#代碼中識別並賦值和獲取值。1.2.2. Text屬性TextBox控制項的Text屬性用於給文本框賦值或取值,以及獲取用戶輸入的值。
  • NET開發-在ASP.NET WebForm應用程式中使用C#操作Label控制項的屬性
    屬性拖放好的Label控制項完整的源碼為:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>1.2.1. ID屬性ID屬性是必須屬性,指定Label控制項的唯一ID值,最好修改以「lbl+有意義的單詞」為ID值,便於後臺代碼識別。
  • asp.net core 使用 TestServer 來做集成測試
    asp.net core 使用 TestServer 來做集成測試Intro之前我的項目裡的集成測試是隨機一個埠,每次都真實的啟動一個 WebServer,之前也有看到過微軟文檔上 TestServer 的介紹,當時沒仔細看過以為差不多就沒用,一直是啟動了一個真正的
  • ASP.NET中使用IFRAME建立類Modal窗口
    id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4),但多數用起來麻煩,還要為了回傳值用Frameset建立2個無用的窗口。不爽!>document.all.IFRAME1.src=url;}</script></HEAD><bodyMS_POSITIONING="GridLayout"><formid="Form1"method="post"runat="server"><FONTface="宋體"><asp
  • 用ASP製作餅圖、柱狀圖等
    </P><P align="center"><IMG src="chartimages.asp?  Set Chart = Server.CreateObject("csDrawGraphTrial.Draw")   Chart.AddData "NO> 1", 17, "ff0000"  Chart.AddData "NO> 2", 28, "00ff00"  Chart.AddData "NO> 3"
  • ASP.NET Core 3.1中HTTPS的配置
    如果配置HTTPS成了迫在眉睫的問題,基於Nginx、Apache、Tomcat等Web伺服器對HTTPS支持都很友好,配置比較簡單,但是對於使用C#和ASP.NET Core做Web開發的同學可能還有一定的困惑,本文我們就來說說在ASP.NET Core環境下的HTTPS配置。HTTPS重定向中間件在asp.net中,默認情況下啟用https。
  • ASP.NET控制項10個最有用的屬性詳解
    1、ClientIDMode  渲染ASP.NET控制項時會自動生成一個ID,當我們在客戶端腳本中引用它們時,卻會製造不少麻煩,雖然它是命名容器和ID的簡單串聯,但仍然無法預測生成的ID範圍。keyword2"      Description="my description" %>  3、
  • 易信網ASP探針 V1.8
    dim thetime3,tempfile,iserriserr=false t1=timer tempfile=server.MapPath("./") & "\aspchecktest.txt" for i=1 to 50 Err.Clear set tempfileOBJ = FsoObj.CreateTextFile(tempfile,true
  • asp.net連接MySQL,在GridView上實現增刪改查:前臺配置參數實現
    asp.net中如果想要在GridView控制項上實現增刪改查,通過給GridView添加數據源就可以實現,前提是使用的資料庫必須是數據源中有的。正好最近做的asp.net項目就需要用在GridView中使用mysql連接,所以在網上找了很多教程,都比較零散,用的最多的就是在底層.cs文件中通過GridView的一些事件去做相應的處理,而且很麻煩,我花了好幾個小時終於找到了在前臺通過配置的方式實現增刪改查,下面是具體步驟。一、在頁面上添加一個GridView控制項和一個SqlDataSource控制項。
  • NET開發-在ASP.NET WebForm應用程式中,使用C#操作單選按鈕
    如下是在aspx頁面上添加的RadioButtonList按鈕完整Html代碼:這裡在aspx頁面上拖放了RadioButtonList按鈕,源碼為:<asp:RadioButtonList ID="RadioButtonList1" runat="server"