国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

用C#創建Web應用程序

2024-07-21 02:19:55
字體:
來源:轉載
供稿:網友
使用微軟正在推行的.net技術和c#語言可以快速建立web應用程序,其安全性和可升級性都大大勝過普通的asp應用程序。在這篇文章里,我們將使用.net和c#一步一步的建立一個應用程序。

  系統需求:

  internet explorer 5.5

  windows 2000 professional, server 或 advanced server

  asp+/microsoft .net (預覽版可以在 http://msdn.microsoft.com/net 下載)

  sql server 7.0 + sp1 或更高版本

  使用微軟 .net的高級對象模型(advanced object model)可以快速建立安全的,易于升級性的web應用程序。

  微軟的 .net是一個開發商業解決方案的理想技術。.net技術結合c#的彈性和高性能,開發商業程序比以往僅僅使用asp的方法更為簡單。

  在這篇文章里,我們將使用 .net和c#來建立一個簡單的商業應用程序--一個能夠讓客戶瀏覽你的產品目錄的程序。

  這個程序包含了最基本的.net和c#技術,在本文中,將涉及到如何建立和編譯c#的商業應用層組件。也將談到怎樣使用aspx頁面存取組件和綁定數據。綜合使用這些技術,可以花費比傳統的asp方法更少的時間建立web應用程序。

  穩固的.net應用程序仍然依靠于穩固的數據庫計劃和精心編寫的存儲過程。

  應用程序可以通過組件調用已經寫好的存儲過程。大部分多層方法都不推薦直接從程序中調用數據,那樣會降低程序的速度,也不利于調試。

  本文主要討論c#和asp+,不過多的討論建立數據庫和存儲過程。

組件的開發
  我們將要編寫的c#組件同時作為邏輯層和數據存取層。

  如果打算將來把程序移植到另一種數據庫中,比如oracle,那么需要把邏輯層和數據存取層分別放在兩個組件中。本文中只使用sql server,所以不需要分開它們。

  這個應用程序需要兩個頁面:default.aspx 和 productlist.aspx。 default.aspx 是用戶訪問web首先看見的頁面,它列出所有的產品種類。用戶從default.aspx菜單中選擇種類后,將進入productlist.aspx頁面,這個頁面顯示了當前類所有產品的列表。

  在用戶使用這兩個頁面的過程中,發生了兩個動作:第一個是在菜單中列出產品種類(default.aspx),第二個是在產品列表的頁面中列出產品(productlist.aspx)。我們可以建立兩個函數來完成這兩個任務,這兩個函數都通過調用存儲過程獲取數據。對應這兩個函數,我們在一個叫做commercedotnet的名字空間中建立起兩個類:category 和 product。(圖1)使用commercedotnet.categories實例化categories類,使用commercedotnet.products實例化products類。為了使代碼清晰,我們在不同的文件中分別聲明這兩個類。由于他們共享一個名字空間,即使在不同的文件聲明,在編譯后也將成為一個單獨的組件。


  categorylist方法傳遞了一個包含所有產品種類的數據集給系統。在categories類中加入categorylist的方法。

  代碼如下:

  namespace commercedotnet {

   public class categories {

    public dataset categorylist() {

    }

   }

  }

  建立了這個類以后,開始為categorylist方法添加代碼。

  categorylist方法獲取數據的過程分為四步:1.通過sqlconnection和sqldatasetcommand對象建立數據連接和命令對象。2.把命令對象類型設置為存儲過程。3.把存儲過程listcategory的結果送入數據集。4.把包含結果的數據集返回給調用它的函數。

  完整的categorylist方法代碼如下:

  public dataset categorylist() {

    // 建立數據連接和命令對象

    sqlconnection myconnection = new sqlconnection

    ("server=localhost;uid=sa;pwd=;database=commercedotnet");

    sqldatasetcommand mycommand = new sqldatasetcommand("listcategory", myconnection);

    // 設置命令對象類型為存儲過程

    mycommand.selectcommand.commandtype = commandtype.storedprocedure;

    // 建立和填充數據集

    dataset mydataset = new dataset();

    mycommand.filldataset(mydataset, "categorylist");

    // 返回數據集

    return mydataset;

   }

  productslist方法和categorylist方法類似,但是productslist向存儲過程傳遞了一個參數。

  代碼如下:

  public dataset productslist(int categoryid) {

    // 建立數據連接和命令對象

    sqlconnection myconnection = new sqlconnection

    ("server=localhost;uid=sa;pwd=;database=commercedotnet");

    sqldatasetcommand mycommand = new sqldatasetcommand("listproducts", myconnection);

    // 設置命令對象類型為存儲過程

    mycommand.selectcommand.commandtype = commandtype.storedprocedure;

    // 向存儲過程傳遞參數

    sqlparameter parametercategoryid = new sqlparameter("@categoryid", sqldatatype.int, 4);

    parametercategoryid.value = categoryid;

    mycommand.selectcommand.parameters.add(parametercategoryid);

    // 建立和填充數據集

    dataset mydataset = new dataset();

    mycommand.filldataset(mydataset, "products");

    // 返回數據集

    return mydataset;

   }

  兩個類都建立好以后,編譯程序。

  使用命令:csc /out:../bin/commercedotnet.dll /t:library /r:system.data.dll categorydb.cs productdb.cs

  "/out:"開關指定編譯庫名和存放位置,"/t:"開關告訴編譯器建立庫,"/r:"開關指出組件涉及到的其他庫,完整的源程序在文末后面列出。

asp+頁面的開發
  建立好組件以后,下面的工作是開發作為用戶界面asp+頁面。前面的部分,我們設計了default.aspx 和 productslist.aspx 頁,default.aspx頁是站點被裝入后的第一頁,我們就從建立這個缺省頁面開始。

  當頁面讀入時,觸發page_load()方法,這個方法完成了從數據庫獲取的數據并綁定到mylist的任務。首先,聲明一個icollection型變量menuitems。然后,實例化組件,調用categorylist方法,把數據集存放在menuitems對象中。設置mylist的數據源為menuitems。執行mylist.databind方法把數據綁定到mylist。

  這部分代碼如下:

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

   void page_load(object sender, eventargs e) {

   icollection menuitems;

    commercedotnet.categories categories = new commercedotnet.categories();

menuitems = categories.categorylist().tables[0].defaultview;

    mylist.datasource = menuitems;

    mylist.databind();

   }

  </script>

  default.aspx中其他代碼與傳統的asp頁面類似,請參見文末列出的代碼。

  productlist.aspx與default.aspx類似,但是,綁定數據的代碼有些變化,因為,在開發c#組件的時候,我們在commercedotnet.productslist方法中向存儲過程中傳遞了參數,所以,asp+頁面中也需要有相應的變化。

  commercedotnet.products products = new commercedotnet.products();

  myproductlist.datasource = products.productslist(categoryid).tables[0].defaultview;

  myproductlist.databind();

  至此,兩個asp+頁面也創建完畢。

  這樣,結合c#和asp+的最基礎的應用程序就創建好了。

  這個程序展示了微軟.net和c#技術的強大威力,在這個基礎上,再作進一步的增添和修改,很容易開發出強大的站點。

附:源碼下載
,歡迎訪問網頁設計愛好者web開發。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹巴县| 桐梓县| 七台河市| 五常市| 宜阳县| 青阳县| 泗水县| 桦甸市| 哈尔滨市| 织金县| 芦溪县| 景洪市| 九台市| 昂仁县| 阿合奇县| 新巴尔虎右旗| 平阳县| 北宁市| 察隅县| 瑞安市| 奇台县| 周口市| 高平市| 潢川县| 静宁县| 惠州市| 怀来县| 漳平市| 扎鲁特旗| 丰顺县| 潜山县| 兖州市| 从江县| 浙江省| 灵丘县| 毕节市| 紫阳县| 五常市| 花莲县| 白城市| 古田县|