想请问大侠几个三层结构的问题,谢谢。我正在学用三层结构做c#的全站程序,看了很多教程,有些东西很糊涂,想请教一下:
1.书上说业务逻辑层主要放些验证方面的方法和数据层打交道具体实现方法如:增、删、改等代码,“放些验证方面的方法”我明白是什么意思,可“和数据层打交道具体实现方法如:增、删、改等”我就不明白了啊!因为操作数据库的代码(比如 添加信息 修改信息 更新信息 插入信息 删除信息等)是应该放数据访问层的啊!!! 请问“和数据层打交道具体实现方法如:增、删、改等”放在业务逻辑层应该怎样理解啊???谢谢!2.在表示层中是怎样和数据库中的表里的内容联系起来的啊?(因为用三层结构来做全站程序不能像我们用非三层结构那样直接在表示层.cs文件中写这样的代码啊 string strSel = "select top 5 * from heartword where d_typeid = " + i +" order by d_hwtime desc"; ),能不能举个简单的例子说说啊?谢谢!
1.书上说业务逻辑层主要放些验证方面的方法和数据层打交道具体实现方法如:增、删、改等代码,“放些验证方面的方法”我明白是什么意思,可“和数据层打交道具体实现方法如:增、删、改等”我就不明白了啊!因为操作数据库的代码(比如 添加信息 修改信息 更新信息 插入信息 删除信息等)是应该放数据访问层的啊!!! 请问“和数据层打交道具体实现方法如:增、删、改等”放在业务逻辑层应该怎样理解啊???谢谢!2.在表示层中是怎样和数据库中的表里的内容联系起来的啊?(因为用三层结构来做全站程序不能像我们用非三层结构那样直接在表示层.cs文件中写这样的代码啊 string strSel = "select top 5 * from heartword where d_typeid = " + i +" order by d_hwtime desc"; ),能不能举个简单的例子说说啊?谢谢!
解决方案 »
- asp.net中从数据库读取数据动态添加到树形菜单的一道题
- asp.net mvc3问题
- 字符串截取的问题
- 怎么设置网站的defaultLanguage
- 问一个搞难度的问题
- 字符问题?
- 各们朋友看一下下面的程序为什么那一行总报错?请看
- 通常如何解决一条记录的唯一标志问题?
- 邀请大家讨论提高asp.net项目性能的经验和体会,来者有分
- 谁有使用asp.net操做word的例子,能否给小弟发一个,100分相赠!!!多谢!!!
- 很郁闷!Xml添加节点问题,提示未将对象引用设置到对象的实例?
- 请问在VS.NET里有什么办法可以设置在HTML代码编辑状态写C#代码或者VB.NET代码可以出现对象方法的代码提示!
数据库-存储过程-调用存储过程的C#类-实现业务功能的C#类-界面层
存储过程:把所有表的增、删、修改、查找,都用存储过程实现。
调用存储过程的C#类:与存储过程是一一对应的,一个存储过程用一个相应的函数去调用。
实现业务功能的C#类:把一些业务功能集合起来,如:用户登陆,可能要调用多个上面的C#类,或直接调用存储过程,或有还要写一点存储过程来实现业务功能
界面层:分层的思想是,在这一层中,你越少的考虑数据库结构是分层越成功的做法。
数据层就是heartword这个表.
业务层就是这条SQL语句.他可以写在一个文件中,比如abc.cs
界面层就是.aspx文件.在.aspx文件中把abc.cs包含进去.
private void Button1_Click(object sender, System.EventArgs e)
{
SqlConnection cnn=new SqlConnection("Server=localhost;uid=sa;pwd=pwd;database=heartword");
string strIn="Insert heartword (name) values(@name)";
SqlCommand cmdIn=new SqlCommand(strIn,conn);
cmdIn.Parameters.ADD(@name;TextBox.Text);
cnn.open();
cnn.close();
cmdIn.ExecuteNonQuery();
}
这个abc.aspx.cs文件就是业务层。
2、在ABC.aspx的头行中写<%@ Page language="c#" Codebehind="abc.aspx.cs" AutoEventWireup="false" Inherits="ssss" %>。这一段就是表示层与业务层连接的。关于业务层和数据库连接,可以简单的理解为上面代码中的SqlConnection cnn=new SqlConnection("Server=localhost;uid=sa;pwd=pwd;database=heartword");这一段。
以上的内容是三层结构的最简单理解,在每层中再扩展出去内容就多了。比如:数据层中用存储过程、事物处理等等。业务层中使用各种功能类、数据处理类等等。
在业务层中,还可以继续划分层次来。比如专门用于计算的层、专门用于操作数据库的层。这就是多层结构了,层与层之间的数据交换也还有多种方法。:)
如:aaaa是一个服务
XmlNode lNode;
lNode=aaaa("aaa","bbb").SelectSingleNode("aa/bb");以这样的形式对返回的结果集进行分析以提取数据。
表示层按钮事件---》调用业务层uesr.create(name,password),那么业务层具体实现过程中也就是在create方法内调用数据层{先验证数据合法性,在比如密码加密处理,---》调用数据层dal.create(name,password)}