MVC三层架构的示例分析
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,MVC三层架构的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前几天收到CodeProject的电邮,asp.net mvc
千家信息网最后更新 2024年11月28日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安全错误
数据库的锁怎样保障安全
网络安全保险标的
飞浆对抗网络技术
软件开发薪酬模块
信创板块概念股数据库
发电厂站网络安全三区搭建
亲见智能座机连接服务器失败
网络安全教育答题技巧
数据表与数据库的关系
网络安全在行动课件
时空数据库名词含义
长春数据库租用
access数据库中掩码是什么
图像数据库技术
酷酷跑显示服务器错误怎么办
软件开发程序的组成
戴尔服务器安全防护软件
软件开发员工工作感谢信
数据库oracle安装过程出错
深圳市智慧享联网络技术
卫生院网络安全应急预案和演练
自由幻想手游非洲服务器
新型网络技术售后保障
监狱 网络安全会议
网络安全法普法宣传片
cf手游韩国服务器
工作后物联网和软件开发
中控消费机数据库怎么导出
嵌入式软件开发 工作任务
网络安全宣传知识竞赛答案
软件开发 在家上班