本帖最后由 u014197691 于 2014-07-24 12:25:36 编辑

解决方案 »

  1.   

    http://www.cnblogs.com/qinying/archive/2009/04/16/1436444.html
      

  2.   

    我看你这里面的贴,出现,怎么改还是先理解三层架构之间数据是怎么传递的吧。没有引用dll
      

  3.   

    你这差的多了
    程序根本没有那么多层,你硬去调用,能引用到才怪
    而且不要把网上随便找到的webform代码贴到你winform程序里去
      

  4.   

    感觉你是没有弄清楚三层构架的含义:页面层、业务层(业务逻辑)、数据层 比如你现在的:数据层,与你的数据库相关联的的,比如你的数据库连接,sql语句。业务层:就是与数据层有关联在一起,逻辑推理上的关系,比如,这边要传一些数据给数据层,你的用户名和你的密码之类的页面层:就是你的操作,传数据给业务层,业务层逻辑判断等等。
      

  5.   

    新建一个项目,起名为DAL(数据层),类型为类库
    以下代码放在DAL层中的某个方法中  SqlConnection conn = new SqlConnection(@"Data Source=IDEA-PC;Initial Catalog=图书馆管理系统;Integrated Security=True");
                conn.Open();
                String sql = string.Format("select 编号 from 管理员表 where 姓名='{0}'", strSql);
                SqlCommand cmd = new SqlCommand(sql, conn);
    然后再建一个类库项目,起名为BLL(业务逻辑层)
    BLL层引用DAL层
    在BLL层中加入你的业务逻辑,这里没什么逻辑,直接调用DAL层的查询方法就可以最后在表现层,也就是你的UI层中引用DAL层和BLL层项目
    然后调用BLL层的方法,向BLL传递参数即可
      

  6.   

    把缺少的动态链接库加上,用mvc的话,装下mvc3或者4
      

  7.   

    网上可以找到很多软件自动生成三层代码但是你明白三层的关系么 如果你明白了 再生成会更快注意bin文件夹添加引用就可以了,适应到三层的方法有提示错误的话 就解析一下就好 其实就是using
      

  8.   

    1.表现层:就是你的界面;
    2.逻辑层,就是处理登陆逻辑的地方;
    3.数据访问层,就是查询和持久化数据的地方。简单说就是数据库操作的地方。代码访问的层次:
    窗体--〉逻辑层--〉数据库访问层。表现层和逻辑层交互的地方:
    就是你窗体那个点击方法
     private void button1_Click(object sender, EventArgs e)
     {
        //实例化逻辑层的类,假设为A类。    
        //执行逻辑层方法,比如说CheckUser(User user); 
        //如果执行结果为flase,要给用户提示;成功则登陆成功,跳转到其他窗体。
         var a = new A();
        if(a.CheckUser(user))
        {    }
        else
        {    }
     }逻辑层和数据库访问层交互的地方:
    假设逻辑层一个类A,里面有个方法CheckUser(User user)
    public int CheckUser(User user){ 
        //实例化数据库访问层的类,假设为B类。    
         //执行访问层方法,比如说IsExists(User user);判断是否有这个用户 
        //返回执行结果
         var b = new B();
        return b.IsExists();
    }数据库访问层:
    public bool IsExists(User user){ 
         //你之前窗体那些操作其实就是直接访问数据库的操作,这里的代码可以按照你之前写在窗体里的代码那样写。    
    }
    然后,因为要体现出3层结构。所以代码的组织上就要将不同功能的类分门别类,放到不同命名空间下。
    你拿别人用的代码报错信息里,那些BLL,DAL就是用来组织代码用的。
    当然,现在你所理解的3层,只是逻辑上的3层。物理上还是2层。
      

  9.   

    动软生成的是扯淡的“三层”代码。动软只可能知道你的所谓数据库表,它怎么可能知道该给你设计什么BLL层呢?动软产生的不过是DAL层,然后弄一个假的(没有、也不可能有什么内涵的)BLL层。所以我看到有人以动软为三层“设计”的,就知道其写的号称“三层”的程序一定是像100年前中国老太太的裹脚布一样特别冗长、特别“臭”。实际上,使用这种所谓的“三层”,你还不如写“两层”程序,因为你根本没有可能找到一点BLL层设计的成就。使用动软它在5年以前还是有点用处的,封装了将数据库表读写为.net内存对象的一些方法,也就是说相当于给EF框架提鞋的功能。BLL层表面上只是一个(或者一堆)服务接口。但是做业务逻辑层设计,需要强大的程序设计能力,需要从前端UI出发、结合自己熟悉的一些框架的启示,进行适合当前产品的框架设计。绝对不是从什么数据库表出发。用户的需求是千变万化的,你以为只要100多个数据表一个一个地写“增删改查”界面程序,可是用户2个月以后会让你许多页面都要在同一个界面上同时处理7、8个表进行复杂的交互式录入。因为软件的设计能力,体现在满足用户需求上、理解用户长期习惯的业务数据建模和计算上,绝不是体现在什么数据库表定义上。因此如果你没有经过这方面的训练,不论怎样说你也不会理解具体做法的。我建议你找一个稍微大一点的公司去学习,不要在小公司里耗着。(当然我说的大小,不是指规模,是指这个公司有没有成熟的产品、自动化的软件工程、真正实实在在的产品平台)凡事设计问题,不可能给你照抄什么代码。不能了解设计的人,往往也是没有耐心的。所以只能给你说一点思路而已。我以前回答过一个类似问题,可以参考:http://bbs.csdn.net/topics/390585382
    http://bbs.csdn.net/topics/390740705
      

  10.   

    http://bbs.csdn.net/topics/390443275
      

  11.   

    为什么我在DAL这表输入这数据连接代码。一 conn.Open();这地方提示说错误,说类、结构或接口成员声明中的标记无效。还有String sql = string.Format("select 编号 from 管理员表 where 姓名='{0}'", textBox1.Text);提示找没有这 textBox1.Tex,我明明有这控件。却显示没有。怎么回事?
      

  12.   

    为什么我在DAL这表输入这数据连接代码。一 conn.Open();这地方提示说错误,说类、结构或接口成员声明中的标记无效。还有String sql = string.Format("select 编号 from 管理员表 where 姓名='{0}'", textBox1.Text);提示找没有这 textBox1.Tex,我明明有这控件。却显示没有。怎么回事?

    无语了
    先把变量的作用域了解清楚了,再说吧
    什么基础都没有,就弄所谓三层,弄出来也是么法用