业务:封装一系列的数据访问的操作。
  增加年级?需要保持年级名称的唯一性...  
  1)判断年级是否存在?
  2)如果不存在,增加,存在,提示已经存在。
  增加学生?学生表邮箱,手机号,身份证号?
  
  (1)登陆?区分密码大小写  AbcD    => abcd
  功能:写在业务层中,表示层通常只需要调用为业务层的方法,实现功能,不需要判断
        循环等操作。
业务功能
1)弱业务操作
   一个增删改的操作,多个查询的操作的调用
   实现只需要在业务层实现。
   1)示例:增加年级,年级名不允许相同?
   2)删除年级,判断年级下是否有学生,有不让删。
  
   3)如果登陆时:需要密码区别大小写如何实现?
     实现方法:数据访问层查询对象( 以单对象查询 ),业务层比较密码
2)强业务操作
  多个增删改操作,需要这多个增删改同时成功,同时失败。(需要使用事务)
  功能:删除年级,如果年级有学生?把学生删除或者备份到一个毕业学生表中。
  2.1:可以在业务层写
      在业务层加入事务类进行管理
      1)引入程序集System.Transactions
      2) 引入命名空间:System.Transactions
      3)在需要管理的多条语句定义一个事务对象
       using(TransactionScope scope = new TransactionScope()){
  //调用数据访问层方法1
                //调用数据访问层方法2
                //最后一行加上scope.Complete();
       }
 
   //数据加密的实现?
   为什么加密?保存数据=》传输(URL传参)
   了解加密的分类?可逆加密,不可逆加密MD5
   学习微软加密类?
   主要用于用户的密码使用MD5加密?(登陆如何做),
                                   用户注册,
                                   找回密码的实现()。(1)随机生成一个数,2)调用md5,3)
                                   修改回数据库  4)通过邮件或对话框或短信通知。
   敏感数据使用可逆加密?

    分层结构如何显示多表数据?显示学生信息?学生年级编号,需要显示是学生年级的名称?
    //年级名称在年级表,学生信息在学生表?但是两个有关系?
    1)数据库查询语句应该内连接查询
    2) 数据访问层,表示层,业务层自定义功能业务实体类
      (根据要显示功能定义的实体类)
    3)深入理解实体类(在程序中封装数据的形式)
 
    //分页功能:一个查询,结果有很多,一次显示,比较慢。一次显示一部分数据。
    1)前台分页(查询的很多,显示显示部分) 查询出来多条集合=>只显示集合的一部分
       特点:对数据库一次查询,多次显示
       (优点:减少对数据库的影响 )不足:数据有时不及时。
    2)数据库分页;查询语句,只查询指定页码的数据. [重要]
       Mysql limit
       MsSqL无limit
       分页语句
      
  2.2:可以在数据库的存储过程中实现。
      数据库写存储过程,在存储过程中实现业务事务
      ADO.net调用存储过程[数据访问层调用]
      (1)存储过程是什么?  是SqL server数据库的函数(方法) 里面可以写一系列的sql语句,也可使用定义,
                           变量,写程序逻辑(if, while)等结构,可以使用事务。
      (2)怎么来写存储过程?
            2.1  在数据库里存储过程
            2.2   create procedure 存储过程名
                      参数
    as
   逻辑语句...
       (3)在存储过程实现事务?
                 参考存储过程语句
       (4)在ADO.net调用存储过程?
  
       (5)存储过程的优点?
             存储过程在运行数据库,最主要特点是运用效率高,一次编译,多次使用。
             安全性能高,
             节省网络传输。
 2.3 直接在数据访问层的ADO.net使用事务