溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MVC三層架構(gòu)的示例分析

發(fā)布時(shí)間:2021-10-28 10:56:02 來(lái)源:億速云 閱讀:144 作者:柒染 欄目:編程語(yǔ)言

MVC三層架構(gòu)的示例分析,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

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

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

ASP.NET MVC三層架構(gòu)實(shí)例:首先的數(shù)據(jù)訪問(wèn)層,Database類:

using System;     using System.Data;     using System.Configuration;     using System.Linq;     using System.Web;     using System.Web.Security;     using System.Web.UI;     using System.Web.UI.HtmlControls;     using System.Web.UI.WebControls;     using System.Web.UI.WebControls.WebParts;     using System.Xml.Linq;         using System.Data.SqlClient;         namespace northWind3Tier.DataAccessLayer     {         /// < summary>         /// 用于數(shù)據(jù)訪問(wèn)         /// < /summary>         public class Database         {             /// < summary>             /// 數(shù)據(jù)庫(kù)連接             /// < /summary>             protected SqlConnection conn;             /// < summary>             /// 數(shù)據(jù)庫(kù)連接字符串             /// < /summary>             protected string connStr;                 public Database()             {                 this.connStr = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;             }             /// < summary>             /// 關(guān)閉數(shù)據(jù)庫(kù)連接             /// < /summary>              ~Database()//析構(gòu)函數(shù)不帶訪問(wèn)修飾符             {                 try                {                     if (conn != null)                     {                         conn.Close();                     }                 }                 catch { }             }             /// < summary>             /// 打開(kāi)數(shù)據(jù)庫(kù)連接             /// < /summary>             protected void Open()             {                 if (conn == null)                 {                     conn = new SqlConnection(connStr);                 }                 if (conn.State.Equals(ConnectionState.Closed))                 {                     conn.Open();                 }             }             /// < summary>             /// 關(guān)閉數(shù)據(jù)庫(kù)連接             /// < /summary>             protected void Close()             {                 if (conn != null)                 {                     conn.Close();                 }             }             /// < summary>             /// 獲取數(shù)據(jù),返回一個(gè)dataset             /// < /summary>             /// < param name="sql">sql語(yǔ)句< /param>             /// < returns>< /returns>             public DataSet GetDataSet(string sql)             {                 Open();                 SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);                 DataSet dataset = new DataSet();                 adapter.Fill(dataset);                 Close();                 return dataset;                       }         }     }

ASP.NET MVC三層架構(gòu)實(shí)例:業(yè)務(wù)邏輯層 Category類:

using System;     using System.Data;     using System.Configuration;     using System.Linq;     using System.Web;     using System.Web.Security;     using System.Web.UI;     using System.Web.UI.HtmlControls;     using System.Web.UI.WebControls;     using System.Web.UI.WebControls.WebParts;     using System.Xml.Linq;         using System.IO;     using northWind3Tier.DataAccessLayer;     namespace northWind3Tier.BusinessLayer     {         public class Category         {             /// < summary>             /// 根據(jù)貨物ID獲取該貨物的詳細(xì)信息             /// < /summary>             /// < param name="categoryID">< /param>             public void LoadData(int categoryID)             {                 Database db = new Database();                 string sql = "select * from [Categories] where [CategoryID]="+categoryID;                 DataSet ds = db.GetDataSet(sql);                 //如果有查詢到數(shù)據(jù)的話,填充屬性                 if (ds.Tables[0].Rows.Count > 0)                 {                     this.categoryID =(int) ds.Tables[0].Rows[0]["CategoryID"];                     this.categoryName = ds.Tables[0].Rows[0]["CategoryName"].ToString();                     this.description = ds.Tables[0].Rows[0]["Description"].ToString();                     this.image =(byte[]) ds.Tables[0].Rows[0]["Picture"];                              }             }             /// < summary>             /// 字段和屬性             /// < /summary>            #region             private int categoryID;             /// < summary>             /// 編號(hào)             /// < /summary>             public int CategoryID             {                 get { return categoryID; }                 set { categoryID = value; }             }             private string categoryName;             /// < summary>             /// 名稱             /// < /summary>             public string CategoryName             {                 get { return categoryName; }                 set { categoryName = value; }             }             private string description;             /// < summary>             /// 說(shuō)明             /// < /summary>             public string Description             {                 get { return description; }                 set { description = value; }             }             private byte[] image;             /// < summary>             /// 圖像             /// < /summary>             public byte[] Image             {                 get { return image; }                 set { image = value; }             }            #endregion                         }     }

ASP.NET MVC三層架構(gòu)實(shí)例:***就是顯示層,前臺(tái)aspx代碼:

< %@ Page Language="C#" AutoEventWireup="true" CodeBehind="CateqoryQuery.aspx.cs" Inherits="northWind3Tier.CateqoryQuery" %>         < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">         < html xmlns="http://www.w3.org/1999/xhtml" >     < head runat="server">         < title>Untitled Page< /title>     < /head>     < body>         < form id="form1" runat="server">         < div>                      < asp:Label ID="Label1" runat="server" Text="貨物編號(hào)(1-9):">< /asp:Label>                     < asp:TextBox ID="TextBox1" runat="server">< /asp:TextBox>                     < asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="查詢"                  Width="65px" />             < br />             < br />             < asp:Label ID="lblCategoryInfo" runat="server" Text="Label">< /asp:Label>             < br />             < asp:Image ID="Image1" runat="server" />                  < /div>         < /form>     < /body>     < /html>

ASP.NET MVC三層架構(gòu)實(shí)例:后臺(tái)cs代碼:

using System;     using System.Collections;     using System.Configuration;     using System.Data;     using System.Linq;     using System.Web;     using System.Web.Security;     using System.Web.UI;     using System.Web.UI.HtmlControls;     using System.Web.UI.WebControls;     using System.Web.UI.WebControls.WebParts;     using System.Xml.Linq;     using northWind3Tier.BusinessLayer;     using System.IO;         namespace northWind3Tier     {         public partial class CateqoryQuery : System.Web.UI.Page         {             protected void Page_Load(object sender, EventArgs e)             {                 }                 protected void Button1_Click(object sender, EventArgs e)             {                 int categoryID = -1;                     if (TextBox1.Text != "")                 {                     try                    {                         categoryID = Convert.ToInt32(TextBox1.Text);                         //if ((categoryID <  1) || (categoryID > 9))                                                 }                     catch                    {                         Response.Write("< mce:script type="text/javascript">< !--     alert('只能輸入1-9之間的數(shù)字')     // -->< /mce:script>");                          return;                     }                 }                 Category category = new Category();                 category.LoadData(categoryID);                     lblCategoryInfo.Text = "編號(hào):" + category.CategoryID;                 lblCategoryInfo.Text += "< BR>名稱:" + category.CategoryName;                 lblCategoryInfo.Text += "< BR>描述:" + category.Description;                 byte[] image = category.Image;                 //northwind數(shù)據(jù)庫(kù)中的image字段(byte數(shù)組)的前面78是無(wú)用的,必須剔除才能正常顯示圖像                 byte[] temp = new byte[image.Length - 78];                 Array.Copy(image , 78, temp, 0, image.Length - 78);                     string strPath = "photo/temp.JPG";                 string strPhotoPath =strPath;                 //保存圖片文件                 BinaryWriter bw = new BinaryWriter(File.Open(Server.MapPath (strPhotoPath), FileMode.OpenOrCreate));                 bw.Write(temp);                 bw.Close();                 //顯示圖片                 this.Image1.ImageUrl = strPath;             }         }     }

關(guān)于MVC三層架構(gòu)的示例分析問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI