六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

用C#創(chuàng)建Web應(yīng)用程序

[摘要]使用微軟正在推行的.NET技術(shù)和C#語言可以快速建立Web應(yīng)用程序,其安全性和可升級(jí)性都大大勝過普通的ASP應(yīng)用程序。在這篇文章里,我們將使用.NET和C#一步一步的建立一個(gè)應(yīng)用程序。   系統(tǒng)需求:   Internet Explorer 5.5   Windows 2000 Professio...
使用微軟正在推行的.NET技術(shù)和C#語言可以快速建立Web應(yīng)用程序,其安全性和可升級(jí)性都大大勝過普通的ASP應(yīng)用程序。在這篇文章里,我們將使用.NET和C#一步一步的建立一個(gè)應(yīng)用程序。

  系統(tǒng)需求:

  Internet Explorer 5.5

  Windows 2000 Professional, Server 或 Advanced Server

  ASP+/Microsoft .NET (預(yù)覽版可以在 http://msdn.microsoft.com/net 下載)

  SQL Server 7.0 + SP1 或更高版本

  使用微軟 .NET的高級(jí)對象模型(Advanced Object Model)可以快速建立安全的,易于升級(jí)性的Web應(yīng)用程序。

  微軟的 .NET是一個(gè)開發(fā)商業(yè)解決方案的理想技術(shù)。.NET技術(shù)結(jié)合C#的彈性和高性能,開發(fā)商業(yè)程序比以往僅僅使用ASP的方法更為簡單。

  在這篇文章里,我們將使用 .NET和C#來建立一個(gè)簡單的商業(yè)應(yīng)用程序--一個(gè)能夠讓客戶瀏覽你的產(chǎn)品目錄的程序。

  這個(gè)程序包含了最基本的.NET和C#技術(shù),在本文中,將涉及到如何建立和編譯C#的商業(yè)應(yīng)用層組件。也將談到怎樣使用ASPX頁面存取組件和綁定數(shù)據(jù)。綜合使用這些技術(shù),可以花費(fèi)比傳統(tǒng)的ASP方法更少的時(shí)間建立Web應(yīng)用程序。

  穩(wěn)固的.NET應(yīng)用程序仍然依靠于穩(wěn)固的數(shù)據(jù)庫計(jì)劃和精心編寫的存儲(chǔ)過程。

  應(yīng)用程序可以通過組件調(diào)用已經(jīng)寫好的存儲(chǔ)過程。大部分多層方法都不推薦直接從程序中調(diào)用數(shù)據(jù),那樣會(huì)降低程序的速度,也不利于調(diào)試。

  本文主要討論C#和ASP+,不過多的討論建立數(shù)據(jù)庫和存儲(chǔ)過程。

組件的開發(fā)
  我們將要編寫的c#組件同時(shí)作為邏輯層和數(shù)據(jù)存取層。

  如果打算將來把程序移植到另一種數(shù)據(jù)庫中,比如Oracle,那么需要把邏輯層和數(shù)據(jù)存取層分別放在兩個(gè)組件中。本文中只使用SQL Server,所以不需要分開它們。

  這個(gè)應(yīng)用程序需要兩個(gè)頁面:Default.aspx 和 ProductList.aspx。 Default.aspx 是用戶訪問Web首先看見的頁面,它列出所有的產(chǎn)品種類。用戶從Default.aspx菜單中選擇種類后,將進(jìn)入ProductList.aspx頁面,這個(gè)頁面顯示了當(dāng)前類所有產(chǎn)品的列表。

  在用戶使用這兩個(gè)頁面的過程中,發(fā)生了兩個(gè)動(dòng)作:第一個(gè)是在菜單中列出產(chǎn)品種類(Default.aspx),第二個(gè)是在產(chǎn)品列表的頁面中列出產(chǎn)品(ProductList.aspx)。我們可以建立兩個(gè)函數(shù)來完成這兩個(gè)任務(wù),這兩個(gè)函數(shù)都通過調(diào)用存儲(chǔ)過程獲取數(shù)據(jù)。對應(yīng)這兩個(gè)函數(shù),我們在一個(gè)叫做CommerceDotNet的名字空間中建立起兩個(gè)類:Category 和 Product。(圖1)使用CommerceDotNet.Categories實(shí)例化Categories類,使用CommerceDotNet.Products實(shí)例化Products類。為了使代碼清晰,我們在不同的文件中分別聲明這兩個(gè)類。由于他們共享一個(gè)名字空間,即使在不同的文件聲明,在編譯后也將成為一個(gè)單獨(dú)的組件。


  CategoryList方法傳遞了一個(gè)包含所有產(chǎn)品種類的數(shù)據(jù)集給系統(tǒng)。在Categories類中加入CategoryList的方法。

  代碼如下:

  namespace CommerceDotNet {

   public class Categories {

    public DataSet CategoryList() {

    }

   }

  }

  建立了這個(gè)類以后,開始為CategoryList方法添加代碼。

  CategoryList方法獲取數(shù)據(jù)的過程分為四步:1.通過SQLConnection和SQLDataSetCommand對象建立數(shù)據(jù)連接和命令對象。2.把命令對象類型設(shè)置為存儲(chǔ)過程。3.把存儲(chǔ)過程ListCategory的結(jié)果送入數(shù)據(jù)集。4.把包含結(jié)果的數(shù)據(jù)集返回給調(diào)用它的函數(shù)。

  完整的CategoryList方法代碼如下:

  public DataSet CategoryList() {

    // 建立數(shù)據(jù)連接和命令對象

    SQLConnection myConnection = new SQLConnection

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

    SQLDataSetCommand myCommand = new SQLDataSetCommand("ListCategory", myConnection);

    // 設(shè)置命令對象類型為存儲(chǔ)過程

    myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;

    // 建立和填充數(shù)據(jù)集

    DataSet myDataSet = new DataSet();

    myCommand.FillDataSet(myDataSet, "CategoryList");

    // 返回?cái)?shù)據(jù)集

    return myDataSet;

   }

  ProductsList方法和CategoryList方法類似,但是ProductsList向存儲(chǔ)過程傳遞了一個(gè)參數(shù)。

  代碼如下:

  public DataSet ProductsList(int categoryID) {

    // 建立數(shù)據(jù)連接和命令對象

    SQLConnection myConnection = new SQLConnection

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

    SQLDataSetCommand myCommand = new SQLDataSetCommand("ListProducts", myConnection);

    // 設(shè)置命令對象類型為存儲(chǔ)過程

    myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;

    // 向存儲(chǔ)過程傳遞參數(shù)

    SQLParameter parameterCategoryID = new SQLParameter("@CategoryID", SQLDataType.Int, 4);

    parameterCategoryID.Value = categoryID;

    myCommand.SelectCommand.Parameters.Add(parameterCategoryID);

    // 建立和填充數(shù)據(jù)集

    DataSet myDataSet = new DataSet();

    myCommand.FillDataSet(myDataSet, "Products");

    // 返回?cái)?shù)據(jù)集

    return myDataSet;

   }

  兩個(gè)類都建立好以后,編譯程序。

  使用命令:csc /out:../bin/CommerceDotNet.dll /t:library /r:System.Data.dll CategoryDB.cs ProductDB.cs

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

ASP+頁面的開發(fā)
  建立好組件以后,下面的工作是開發(fā)作為用戶界面ASP+頁面。前面的部分,我們設(shè)計(jì)了default.aspx 和 productslist.aspx 頁,Default.aspx頁是站點(diǎn)被裝入后的第一頁,我們就從建立這個(gè)缺省頁面開始。

  當(dāng)頁面讀入時(shí),觸發(fā)Page_Load()方法,這個(gè)方法完成了從數(shù)據(jù)庫獲取的數(shù)據(jù)并綁定到MyList的任務(wù)。首先,聲明一個(gè)ICollection型變量menuItems。然后,實(shí)例化組件,調(diào)用CategoryList方法,把數(shù)據(jù)集存放在menuItems對象中。設(shè)置MyList的數(shù)據(jù)源為menuItems。執(zhí)行MyList.DataBind方法把數(shù)據(jù)綁定到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中其他代碼與傳統(tǒng)的ASP頁面類似,請參見文末列出的代碼。

  ProductList.aspx與default.aspx類似,但是,綁定數(shù)據(jù)的代碼有些變化,因?yàn)椋陂_發(fā)C#組件的時(shí)候,我們在CommerceDotNet.ProductsList方法中向存儲(chǔ)過程中傳遞了參數(shù),所以,ASP+頁面中也需要有相應(yīng)的變化。

  CommerceDotNet.Products products = new CommerceDotNet.Products();

  MyProductList.DataSource = products.ProductsList(categoryId).Tables[0].DefaultView;

  MyProductList.DataBind();

  至此,兩個(gè)ASP+頁面也創(chuàng)建完畢。

  這樣,結(jié)合C#和ASP+的最基礎(chǔ)的應(yīng)用程序就創(chuàng)建好了。

  這個(gè)程序展示了微軟.NET和C#技術(shù)的強(qiáng)大威力,在這個(gè)基礎(chǔ)上,再作進(jìn)一步的增添和修改,很容易開發(fā)出強(qiáng)大的站點(diǎn)。




主站蜘蛛池模板: 色先锋资源网 | 三级大黄 | 日韩大片免费观看视频播放 | 亚洲一区二区三区免费观看 | 午夜色影院 | 午夜小视频男女在线观看 | 青春草国产成人精品久久 | 日韩视频在线观看免费 | 日本免费高清在线观看播放 | 一区二区三区网站在线免费线观看 | 四虎a456tncom| 色花堂在线 | 色射啪| 三级黄色片在线播放 | 亚洲国产精品久久久天堂麻豆 | 日本在线www | 性网站免费 | 欧美中文字幕在线看 | 色狠狠狠色噜噜噜综合网 | 色网站免费观看 | 日本一区二区高清免费不卡 | 亚洲精品亚洲人成在线播放 | 欧美午夜色大片在线观看免费 | 欧美性猛交乱大交xxxx | 日韩中文视频 | 日本三级2018亚洲视频 | 欧美一级高清片欧美国产欧美 | 青草国产精品久久久久久 | 天堂w| 天干天夜啪天天碰 | 亚洲欧美精品一区二区 | 青草久久影院 | 四虎永久视频 | 午夜官网| 五月天狠狠操 | 亚欧精品一区二区三区四区 | 亚洲欧美在线一区二区 | 色噜噜狠狠网站 | 午夜精品久久久久久久四虎 | 天堂bt资源新版在线 | 日韩经典一区 |