解决方案 »
- 如何设计灵活的权限管理系统
- 我要在程序中引用别人写好的软键盘该如何做呢
- winform中如何分页显示比较快?
- 帮忙写一个正则表则式?
- 2003读取oracle数据库时中文显示为乱码怎么解决?
- 工程文件批量打印系统 帮助您快速打印工程文件 完全免费!
- 类型“ListBox”的控件“ListBox1”必须放在具有runat=server窗体标记内??
- 求判断一控件是否在一条线的路径中的最佳算法!已知线两边Point,控件的Location !
- 如何保存解决方案的设置
- 请问各位,在哪里可以下载vs.net?
- 移除动态添加的控件,移除为最后一个控件且为一组的,请前辈指点!
- 求教dotnetzip,将xml的memorystream打包成zip保存到本地
如果你有一个工厂方法,可以直接将针对 SQL Express 的代码切换为针对文本文件查询(或者针对 MongoDB查询、针对Db4o查询,等等)的代码,那么你肯定已经有了基本的“三层”的雏形。当然也可以不进行这样高要求,那么就转而看另外的一个标准:如果你的业务逻辑层脱离了表现层,那么你肯定也已经接近于“三层”机制。但是看你的代码,在 AllGroup 方法中直接调用 pNode 等表现层控件,可见你不可能有独立的业务逻辑层方法!
Bll:业务逻辑
web:操作界面
多看看上面的sp大牛说的
所有与数据库打交道的代码都放在数据层,
比如你上面的 SqlConnection Conn = new SqlConnection("server=CL");
SqlCommand Comm = new SqlCommand();
SqlDataReader dr = null;
#region 连接数据库:添加子节点
Conn.Open();
Comm.Connection = Conn;
Comm.CommandText = "select Name from Groups";数据层返回 实体对象 或 实体集合,或者 DataTable 之类的。
然后界面根据数据层的返回来刷新处理数据。
省略了业务层,大量的业务逻辑实际在数据层完成了,比如增加/修改/删除/逻辑验证等
{}