MVC三层架构的示例分析
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,MVC三层架构的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前几天收到CodeProject的电邮,asp.net mvc
千家信息网最后更新 2026年11月02日MVC三层架构的示例分析
MVC三层架构的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
前几天收到CodeProject的电邮,asp.net mvc 的E文教程正在编写,一个老外蛮伟大的,免费贡献***章,也有100多页的内容。其中大量应用了LINQ技术(看来得花时间看看了,用统一的方式来面对所有数据源,确实还是蛮吸引人的)。当然,LINQ不是MVC必须的,你可以用很多技术实现,比如NHibernate,甚至原生的ADO.NET。
既然是实例,我直接上代码了,基础理论一搜一大把,但我还是觉得实践才是最重要的:
ASP.NET MVC三层架构实例:首先的数据访问层,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> /// 用于数据访问 /// < /summary> public class Database { /// < summary> /// 数据库连接 /// < /summary> protected SqlConnection conn; /// < summary> /// 数据库连接字符串 /// < /summary> protected string connStr; public Database() { this.connStr = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString; } /// < summary> /// 关闭数据库连接 /// < /summary> ~Database()//析构函数不带访问修饰符 { try { if (conn != null) { conn.Close(); } } catch { } } /// < summary> /// 打开数据库连接 /// < /summary> protected void Open() { if (conn == null) { conn = new SqlConnection(connStr); } if (conn.State.Equals(ConnectionState.Closed)) { conn.Open(); } } /// < summary> /// 关闭数据库连接 /// < /summary> protected void Close() { if (conn != null) { conn.Close(); } } /// < summary> /// 获取数据,返回一个dataset /// < /summary> /// < param name="sql">sql语句< /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三层架构实例:业务逻辑层 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> /// 根据货物ID获取该货物的详细信息 /// < /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); //如果有查询到数据的话,填充属性 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> /// 编号 /// < /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> /// 说明 /// < /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三层架构实例:***就是显示层,前台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="货物编号(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三层架构实例:后台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之间的数字') // -->< /mce:script>"); return; } } Category category = new Category(); category.LoadData(categoryID); lblCategoryInfo.Text = "编号:" + category.CategoryID; lblCategoryInfo.Text += "< BR>名称:" + category.CategoryName; lblCategoryInfo.Text += "< BR>描述:" + category.Description; byte[] image = category.Image; //northwind数据库中的image字段(byte数组)的前面78是无用的,必须剔除才能正常显示图像 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; } } }关于MVC三层架构的示例分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
数据
架构
数据库
实例
分析
代码
问题
示例
内容
名称
图像
图片
字段
属性
技术
更多
货物
还是
帮助
解答
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
互联网科技园
中国互联网科技股
互联网属科技
工业互联网科技新基建
互联网巨头反垄断金融科技
科技互联网技术
互联网公司 科技公司
平安科技 互联网
互联网科技英文
互联网 的科技创新
互联网女皇 腾讯科技
互联网科技logo设计
互联网科技公司有哪些
太原新华互联网科技学校怎么样
青海省互联网新科技
健康食品互联网创新科技园项目
广州富喜互联网络科技
互联网科技股为什么大涨
互联网科技对化妆品行业
碳银互联网科技
科技互联网公司logo
互联网科技logo
互联网 视角下的科技创新
深圳互联网科技怎么样
互联网科技公司需要的职位
江苏南京365互联网科技
中国航天科技大学国际工业互联网
卡尔迅互联网科技有限公司
西安有哪些互联网高科技企业