Asp.net三层结构中的变量引用与传递(2)_.Net教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:Asp.Net发送电子邮件程序一、 asp.net 1.0及.net1.1中的做法(利用CDOSYS消息组件发送电子邮件): 代码如下: usingSystem; usingSystem.Web.Mail; /// summary /// 用到的类主要位于System.Web.Mail命名空间下 /// /summary publicclassSendMail { publicSendMail() { } ///summary
道理很简单,一看就懂。对于以后的操作有好处的。
其次是要建立逻辑层,这个逻辑层基本上就是实例化数据层DataCore之后为表示层返回一些DataSet,DataReader之类或是执行一些insert,update,delete之类语句。这个逻辑层也是为了区分整个Project下面不同功能模块。比如说用户模块起名叫做UserModel.cs,新闻模块叫做NewsModel.cs之类。逻辑层的另一个好处就是可以为表示层建立可以多次实例化的同一个对象或是方法。比如说User类,通过ID或是Username 查询并建立的对象可以被表示层多次调用。
最后是表示层,表示层的功能就是完成页面逻辑。主要是接受客户端数据然后经过简单整合和判断,传递给逻辑层处理。同样,接收逻辑层传递来的Dataset或DataReader,表示在前台页面。
数据在各个层次之间的关系相对独立,但是又相对连续。
独立性:
对于表示层之外的几个层,都可以把单个的对象或是方法直接拿出来放到其他工程中。因为每个曾都是为了实现模型中独立的功能而完成的。因为在类似工程中的应用基本上不用太大改动,特别是一些相对更加原始的层,在这个示例中的DataCore就是一个典型的例子。
连续性:
数据在传递过程中有较强的连续性。举一个例子,在表示层中有这样一个根据Session中Userid返回一个Dataset,原本我是这样写的:
表示层:
DataSet UserInforRow = ObjectUser.GetUserInfor(Int32.Parse(Session["UserId"].ToString()));
逻辑层:
public DataSet GetUserInfor(int UserID) { SqlParameter[] parameters ={new SqlParameter("@UserID",SqlDbType.Int,4)}; parameters[0].Value = UserID; using(DataSet UserInfor = RunProcedure("GetUserInfor",parameters,"UserInfor")) { return UserInfor; } } |
这样可以编译通过,但是在执行的时候提示错误,类型不匹配,语法上面没有错误。
但是错误出在,表示层传进来的是一个Int32,在Sqlparameter中确是一个Int,4,本来以为这样的变量类型都是在每一个层次中相对独立的,但是当他们之间传递数据的时候,出现了问题。
分享:Asp.Net编程基础经验技巧总结1.主要命名空间: %@ImportNamespace=System.Data%处理数据时用到 %@ImportNamespace=System.Data.ADO%使用ADO.net;时用到 %@ImportNamespace=System.Data.SQL%SQLServer数据库专用 %@ImportNamespace=System.Data.XML%不用看处理XML用到 %@ImportName
相关.Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-Asp.net三层结构中的变量引用与传递(2)。