MVC三层架构的示例分析
发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,MVC三层架构的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前几天收到CodeProject的电邮,asp.net mvc
千家信息网最后更新 2024年09月25日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安全错误
数据库的锁怎样保障安全
vf数据库中关于sort命令
服务器要求以不安全的方式
中国网络安全生产
五华区专业性软件开发咨询报价
计算机二级数据库技术考什么
企业级软件开发流程八个步骤
广西党员量化积分管理软件开发
腾讯云数据库退费
乌镇互联网之光博览会黑科技
网络安全与隐私保护知识
泛微oa数据库怎么实现
网络技术维护管理
jquery数据库
哪个数据库管理工具好
网络安全态势研究
如何映射ftp服务器
余姚ios软件开发流程
山西服务器虚拟化哪家好
信创服务器如何管理
潍坊量化积分管理软件开发电话
免费服务器版杀毒软件
华为计算机网络技术基础教学
战地一怎么建服务器
阿里麒麟服务器
网络安全毛笔画
60大庆期间网络安全工作
浙江统一软件开发设施价格优惠
邮储银行软件开发中心年终奖
饥荒服务器关闭
PS中网络安全色是哪一个