本帖最后由 chenlun951122 于 2012-10-05 01:21:42 编辑

解决方案 »

  1.   


    如果你有一个工厂方法,可以直接将针对 SQL Express 的代码切换为针对文本文件查询(或者针对 MongoDB查询、针对Db4o查询,等等)的代码,那么你肯定已经有了基本的“三层”的雏形。当然也可以不进行这样高要求,那么就转而看另外的一个标准:如果你的业务逻辑层脱离了表现层,那么你肯定也已经接近于“三层”机制。但是看你的代码,在 AllGroup 方法中直接调用 pNode 等表现层控件,可见你不可能有独立的业务逻辑层方法!
      

  2.   

    注意,不是糊弄自己、把工程或者文件夹分成几个“层”就叫三层。也不是弄个什么“代码生成器”来生成代码就叫作三层。三层的概念,是指这三层相互不依赖:业务逻辑层从来不依赖表现层,并且DAL层也从来不依赖业务层。于是底层可以作为服务而预先独立进行了逻辑设计、独立开发、灵活地适配各种应用。于是分出三层来了。
      

  3.   

    DAL:数据库的操作
    Bll:业务逻辑
    web:操作界面
    多看看上面的sp大牛说的
      

  4.   

    wpf有一个树形管理的例子(MVVM),那个严格实现分层,但在winform下面不适合太严格的分层。一般你要抽出一个数据层,
    所有与数据库打交道的代码都放在数据层,
    比如你上面的   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 之类的。
    然后界面根据数据层的返回来刷新处理数据。
    省略了业务层,大量的业务逻辑实际在数据层完成了,比如增加/修改/删除/逻辑验证等
      

  5.   

         using (TransactionScope scope = new TransactionScope())
                {}