国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

ASP.NET MVC三層架構實例

開發 后端
本文以Northwind數據庫的表Categories為例,簡明的演示了一個簡單的ASP.NET MVC三層架構的例子。

前幾天收到CodeProject的電郵,asp.net mvc 的E文教程正在編寫,一個老外蠻偉大的,免費貢獻***章,也有100多頁的內容。其中大量應用了LINQ技術(看來得花時間看看了,用統一的方式來面對所有數據源,確實還是蠻吸引人的)。當然,LINQ不是MVC必須的,你可以用很多技術實現,比如NHibernate,甚至原生的ADO.NET。

既然是實例,我直接上代碼了,基礎理論一搜一大把,但我還是覺得實踐才是最重要的:

ASP.NET MVC三層架構實例:首先的數據訪問層,Database類:

  1. using System;     
  2. using System.Data;     
  3. using System.Configuration;     
  4. using System.Linq;     
  5. using System.Web;     
  6. using System.Web.Security;     
  7. using System.Web.UI;     
  8. using System.Web.UI.HtmlControls;     
  9. using System.Web.UI.WebControls;     
  10. using System.Web.UI.WebControls.WebParts;     
  11. using System.Xml.Linq;     
  12.     
  13. using System.Data.SqlClient;     
  14.     
  15. namespace northWind3Tier.DataAccessLayer     
  16. {     
  17.     /// < summary>     
  18.     /// 用于數據訪問     
  19.     /// < /summary>     
  20.     public class Database     
  21.     {     
  22.         /// < summary>     
  23.         /// 數據庫連接     
  24.         /// < /summary>     
  25.         protected SqlConnection conn;     
  26.         /// < summary>     
  27.         /// 數據庫連接字符串     
  28.         /// < /summary>     
  29.         protected string connStr;     
  30.     
  31.         public Database()     
  32.         {     
  33.             this.connStr = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;     
  34.         }     
  35.         /// < summary>     
  36.         /// 關閉數據庫連接     
  37.         /// < /summary>     
  38.          ~Database()//析構函數不帶訪問修飾符     
  39.         {     
  40.             try    
  41.             {     
  42.                 if (conn != null)     
  43.                 {     
  44.                     conn.Close();     
  45.                 }     
  46.             }     
  47.             catch { }     
  48.         }     
  49.         /// < summary>     
  50.         /// 打開數據庫連接     
  51.         /// < /summary>     
  52.         protected void Open()     
  53.         {     
  54.             if (conn == null)     
  55.             {     
  56.                 conn = new SqlConnection(connStr);     
  57.             }     
  58.             if (conn.State.Equals(ConnectionState.Closed))     
  59.             {     
  60.                 conn.Open();     
  61.             }     
  62.         }     
  63.         /// < summary>     
  64.         /// 關閉數據庫連接     
  65.         /// < /summary>     
  66.         protected void Close()     
  67.         {     
  68.             if (conn != null)     
  69.             {     
  70.                 conn.Close();     
  71.             }     
  72.         }     
  73.         /// < summary>     
  74.         /// 獲取數據,返回一個dataset     
  75.         /// < /summary>     
  76.         /// < param name="sql">sql語句< /param>     
  77.         /// < returns>< /returns>     
  78.         public DataSet GetDataSet(string sql)     
  79.         {     
  80.             Open();     
  81.             SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);     
  82.             DataSet dataset = new DataSet();     
  83.             adapter.Fill(dataset);     
  84.             Close();     
  85.             return dataset;               
  86.         }     
  87.     }     
  88. }    

ASP.NET MVC三層架構實例:業務邏輯層 Category類:

  1. using System;     
  2. using System.Data;     
  3. using System.Configuration;     
  4. using System.Linq;     
  5. using System.Web;     
  6. using System.Web.Security;     
  7. using System.Web.UI;     
  8. using System.Web.UI.HtmlControls;     
  9. using System.Web.UI.WebControls;     
  10. using System.Web.UI.WebControls.WebParts;     
  11. using System.Xml.Linq;     
  12.     
  13. using System.IO;     
  14. using northWind3Tier.DataAccessLayer;     
  15. namespace northWind3Tier.BusinessLayer     
  16. {     
  17.     public class Category     
  18.     {     
  19.         /// < summary>     
  20.         /// 根據貨物ID獲取該貨物的詳細信息     
  21.         /// < /summary>     
  22.         /// < param name="categoryID">< /param>     
  23.         public void LoadData(int categoryID)     
  24.         {     
  25.             Database db = new Database();     
  26.             string sql = "select * from [Categories] where [CategoryID]="+categoryID;     
  27.             DataSet ds = db.GetDataSet(sql);     
  28.             //如果有查詢到數據的話,填充屬性     
  29.             if (ds.Tables[0].Rows.Count > 0)     
  30.             {     
  31.                 this.categoryID =(int) ds.Tables[0].Rows[0]["CategoryID"];     
  32.                 this.categoryName = ds.Tables[0].Rows[0]["CategoryName"].ToString();     
  33.                 this.description = ds.Tables[0].Rows[0]["Description"].ToString();     
  34.                 this.image =(byte[]) ds.Tables[0].Rows[0]["Picture"];                  
  35.             }     
  36.         }     
  37.         /// < summary>     
  38.         /// 字段和屬性     
  39.         /// < /summary>    
  40.         #region     
  41.         private int categoryID;     
  42.         /// < summary>     
  43.         /// 編號     
  44.         /// < /summary>     
  45.         public int CategoryID     
  46.         {     
  47.             get { return categoryID; }     
  48.             set { categoryID = value; }     
  49.         }     
  50.         private string categoryName;     
  51.         /// < summary>     
  52.         /// 名稱     
  53.         /// < /summary>     
  54.         public string CategoryName     
  55.         {     
  56.             get { return categoryName; }     
  57.             set { categoryName = value; }     
  58.         }     
  59.         private string description;     
  60.         /// < summary>     
  61.         /// 說明     
  62.         /// < /summary>     
  63.         public string Description     
  64.         {     
  65.             get { return description; }     
  66.             set { description = value; }     
  67.         }     
  68.         private byte[] image;     
  69.         /// < summary>     
  70.         /// 圖像     
  71.         /// < /summary>     
  72.         public byte[] Image     
  73.         {     
  74.             get { return image; }     
  75.             set { image = value; }     
  76.         }    
  77.         #endregion     
  78.     
  79.     
  80.     
  81.     
  82.     }     
  83. }    

ASP.NET MVC三層架構實例:***就是顯示層,前臺aspx代碼:

  1. < %@ Page Language="C#" AutoEventWireup="true" CodeBehind="CateqoryQuery.aspx.cs" Inherits="northWind3Tier.CateqoryQuery" %>     
  2.     
  3. < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">     
  4.     
  5. < html xmlns="http://www.w3.org/1999/xhtml" >     
  6. < head runat="server">     
  7.     < title>Untitled Page< /title>     
  8. < /head>     
  9. < body>     
  10.     < form id="form1" runat="server">     
  11.     < div>     
  12.          
  13.         < asp:Label ID="Label1" runat="server" Text="貨物編號(1-9):">< /asp:Label>     
  14.         
  15.         < asp:TextBox ID="TextBox1" runat="server">< /asp:TextBox>     
  16.         
  17.         < asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="查詢"      
  18.             Width="65px" />     
  19.         < br />     
  20.         < br />     
  21.         < asp:Label ID="lblCategoryInfo" runat="server" Text="Label">< /asp:Label>     
  22.         < br />     
  23.         < asp:Image ID="Image1" runat="server" />     
  24.          
  25.     < /div>     
  26.     < /form>     
  27. < /body>     
  28. < /html>    

ASP.NET MVC三層架構實例:后臺cs代碼:

  1. using System;     
  2. using System.Collections;     
  3. using System.Configuration;     
  4. using System.Data;     
  5. using System.Linq;     
  6. using System.Web;     
  7. using System.Web.Security;     
  8. using System.Web.UI;     
  9. using System.Web.UI.HtmlControls;     
  10. using System.Web.UI.WebControls;     
  11. using System.Web.UI.WebControls.WebParts;     
  12. using System.Xml.Linq;     
  13. using northWind3Tier.BusinessLayer;     
  14. using System.IO;     
  15.     
  16. namespace northWind3Tier     
  17. {     
  18.     public partial class CateqoryQuery : System.Web.UI.Page     
  19.     {     
  20.         protected void Page_Load(object sender, EventArgs e)     
  21.         {     
  22.     
  23.         }     
  24.     
  25.         protected void Button1_Click(object sender, EventArgs e)     
  26.         {     
  27.             int categoryID = -1;     
  28.     
  29.             if (TextBox1.Text != "")     
  30.             {     
  31.                 try    
  32.                 {     
  33.                     categoryID = Convert.ToInt32(TextBox1.Text);     
  34.                     //if ((categoryID <  1) || (categoryID > 9))     
  35.                             
  36.                 }     
  37.                 catch    
  38.                 {     
  39.                     Response.Write("< mce:script type="text/javascript">< !--     
  40. alert('只能輸入1-9之間的數字')     
  41. // -->< /mce:script>");     
  42.                      return;     
  43.                 }     
  44.             }     
  45.             Category category = new Category();     
  46.             category.LoadData(categoryID);     
  47.     
  48.             lblCategoryInfo.Text = "編號:" + category.CategoryID;     
  49.             lblCategoryInfo.Text += "< BR>名稱:" + category.CategoryName;     
  50.             lblCategoryInfo.Text += "< BR>描述:" + category.Description;     
  51.             byte[] image = category.Image;     
  52.             //northwind數據庫中的image字段(byte數組)的前面78是無用的,必須剔除才能正常顯示圖像     
  53.             byte[] temp = new byte[image.Length - 78];     
  54.             Array.Copy(image , 78, temp, 0, image.Length - 78);     
  55.     
  56.             string strPath = "photo/temp.JPG";     
  57.             string strPhotoPath =strPath;     
  58.             //保存圖片文件     
  59.             BinaryWriter bw = new BinaryWriter(File.Open(Server.MapPath (strPhotoPath), FileMode.OpenOrCreate));     
  60.             bw.Write(temp);     
  61.             bw.Close();     
  62.             //顯示圖片     
  63.             this.Image1.ImageUrl = strPath;     
  64.         }     
  65.     }     
  66. }    
  67.  

【編輯推薦】

  1. 利用TemplateField顯示GridView中數據的元數據
  2. 使用Calendar控件顯示HiredDate字段
  3. 利用TemplateField將姓和名顯示在一列中
  4. GridView綁定數據的實現
  5. 通過e.Row實現GridViewRow訪問單元格
責任編輯:book05 來源: csdn
相關推薦

2009-07-28 17:25:14

ASP.NET三層結構

2009-07-30 13:07:49

ASP.NET中的三層

2009-07-30 13:30:56

ASP.NET開發模式

2011-04-19 13:53:41

三層架構

2009-07-24 13:20:44

MVC框架ASP.NET

2009-07-31 12:43:59

ASP.NET MVC

2013-01-09 11:00:20

架構開發三層架構.NET架構

2009-07-28 13:06:45

ASP.NET MVC

2009-07-22 10:09:59

ASP.NET MVC

2009-07-20 10:53:59

ASP.NET MVC

2009-07-23 15:44:39

ASP.NET MVC

2009-07-23 14:31:20

ASP.NET MVC

2009-07-22 13:24:24

ASP.NET MVC

2009-04-30 15:56:50

三層架構MVCMVP

2009-11-02 09:14:51

ASP.NET MVC

2010-06-23 15:44:03

ASP.NET MVC

2009-07-24 11:33:12

MVC單元測試ASP.NET

2009-07-22 13:08:55

拯救UpdatePanASP.NET MVC

2009-07-22 10:34:37

ActionInvokASP.NET MVC

2010-03-19 09:17:16

ASP.NET MVC
點贊
收藏

51CTO技術棧公眾號

亚洲在线视频一区| 久久99九九99精品| 精品乱人伦小说| 992kp快乐看片永久免费网址| 精品视频网站| 中文字幕亚洲在线| h视频网站在线观看| 欧美黑人xxxx| 亚洲精品乱码视频| 亚洲黄页网站| 亚洲深夜福利视频| 米奇精品一区二区三区| 亚洲欧美激情小说另类| 亚洲国产成人精品无码区99| 亚洲激情欧美| 色94色欧美sute亚洲13| 91在线视频观看免费| 免费的成人av| 九九久久99| 国产区av在线| 久久亚洲捆绑美女| 欧美裸体xxxx极品少妇| caopeng在线| 日韩成人免费看| 日韩午夜激情av| 视频午夜在线| 一区二区在线观看免费 | 国产一区二区在线观看免费| 精品成a人在线观看| jzzjzzjzz亚洲成熟少妇| 高潮白浆女日韩av免费看| 99电影在线观看| 欧美综合精品| 都市激情亚洲色图| fc2ppv完全颜出在线播放| 久久久不卡影院| 久久久久久久少妇| 国产精品一国产精品| 色与欲影视天天看综合网| 中文字幕第一页亚洲| 国产成人精品亚洲777人妖 | 日韩电影免费观看高清完整版| 日韩欧美国产一区二区三区| 裤袜国产欧美精品一区| 欧美放荡的少妇| 91黄色免费版| 国模视频一区二区| 麻豆网在线观看| 91亚洲国产成人精品一区二区三 | 91嫩草国产丨精品入口麻豆| 91综合国产| 国产欧美一区二区精品性色超碰| 成人黄色图片网站| 狠狠爱成人网| 亚洲欧美日韩国产手机在线 | 成人在线播放av| 日本大胆欧美| 亚洲一区二区三区sesese| 欧美99久久| 欧美无砖专区一中文字| 撸视在线观看免费视频| 欧洲视频一区二区| 青青在线视频| 国产精品美女一区二区| 国产伦精品一区二区三区在线| 国内精品美女在线观看| 牛人盗摄一区二区三区视频| 99re6热只有精品免费观看| 久久久亚洲欧洲日产国码aⅴ| 国产人妖ts一区二区| 一本久久a久久免费精品不卡| av小片在线| 精品亚洲男同gayvideo网站| 国产一区二区高清在线| 国产精品亚洲激情| 日韩电影在线免费观看| aa免费在线观看| 欧美日韩中文字幕在线视频| 大桥未久一区二区三区| 99久久精品免费精品国产| 黑巨人与欧美精品一区| 欧美视频一区二区在线观看| 2020国产在线视频| 久久伊人精品天天| 久久久久久美女精品| 色综合视频网站| 成人3d精品动漫精品一二三| 欧美久久久久久一卡四| 国产亚洲短视频| 亚洲欧美视频一区二区| 中文字幕在线视频日韩| 久久国产影院| 777久久精品一区二区三区无码 | 日韩欧美一区电影| 麻豆一二三区精品蜜桃| 日韩一级精品视频在线观看| 婷婷激情成人| 成人午夜电影免费在线观看| 99这里都是精品| 香蕉视频在线网址| 麻豆系列在线观看| 日韩精品欧美大片| 日本高清不卡的在线| 欧美天堂视频| 日韩电影中文 亚洲精品乱码| 神马影院一区二区三区| 国产精品免费av| 超碰在线94| 精品国产髙清在线看国产毛片 | 成人av免费在线观看| 久久99国产精品99久久| 97aⅴ精品视频一二三区| 激情小视频在线| 九九久久国产精品| 久久久久久久波多野高潮日日| 国产66精品久久久久999小说| 99久久久国产精品免费蜜臀| 免费在线你懂的| 国产精品狠色婷| 97se狠狠狠综合亚洲狠狠| 国产精品扒开做爽爽爽的视频| 欧美综合在线第二页| 国产suv一区二区三区88区| 99reav在线| 国产精品国产三级国产aⅴ浪潮| 国产精品一二三| 羞羞网站在线看| 国产一区二区三区免费不卡| 一区二区在线看| 国偷自产视频一区二区久| 久久国产午夜精品理论片最新版本| 国产aⅴ精品一区二区三区色成熟| 免费在线观看一级毛片| 91tv亚洲精品香蕉国产一区7ujn| 国产精品综合网| 先锋影音在线资源站91| 国产伦一区二区三区色一情| 精品久久久久久| 国产永久精品大片wwwapp| 国产精品亚洲欧美导航| 3d动漫啪啪精品一区二区免费| 性欧美视频videos6一9| 国产91成人video| 国产精品欧美激情在线播放| 91日本视频在线| 亚洲淫片在线视频| 欧美日韩不卡合集视频| 国产高清精品一区二区三区| 日本人体一区二区| 欧美日韩国产一二| 性欧美大战久久久久久久免费观看 | 无遮挡又爽又刺激的视频| 成人xxxx| 黄色在线免费观看大全| 亚洲成人久久久| 亚洲成人高清| 亚洲男人第一网站| 精品成人a区在线观看| 亚洲精品v天堂中文字幕| 精品国产乱码久久久久久天美| 成人短视频下载| 日本美女一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋 | 无夜福利视频观看| 日韩一级免费一区| 91精品国产91久久久久| 日韩欧美色综合网站| 91豆麻精品91久久久久久| 欧美一级电影网站| 国产视频丨精品|在线观看| 欧美黑人性猛交| 国产精品中文字幕在线| 国产在线一区二区三区播放| 亚洲国产日韩综合一区| 午夜探花在线观看| 视频一区三区| 国产成人一区二区三区电影| 国产精品人成电影| av一区二区三区免费| 秋霞在线一区二区| 性一交一乱一伧国产女士spa| 日本一区二区三区www| 555www色欧美视频| 中文字幕制服丝袜成人av | 欧美日韩精品欧美日韩精品一 | 欧美日韩高清影院| 国产午夜精品一区二区三区嫩草| a级片在线免费观看| 亚洲乱码一区二区三区| 伊人激情综合网| 亚洲国产精品黑人久久久| 香蕉视频一区| 激情在线视频| 亚洲欧洲精品在线| 久久69精品久久久久久久电影好 | 亚洲人成网在线播放| 国产天堂亚洲国产碰碰| 欧美日韩伦理| 性欧美ⅴideo另类hd| 农村妇女精品一二区|