C#机房重构之DataTable查询表

前言

重构开始有两周了,遇到的问题不少,今天就来总结下查询表和查询数据。为什么要把这两个单独列出来,原因是我在登录窗体和修改密码窗体时都是通过bool值来判断帐号是否存在的,代码在外观层,如下图。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data;

namespace Facade
{
    public class LoginFacade
    {
        //判断用户是否存在,并提供返回值flag
        public Boolean SelectUser(Enitity.UserEnitity user)
        {
            bool flag;

            BLL.LoginBll userBLL = new BLL.LoginBll();

            flag = userBLL.UserBLL(user);

            return flag;
        }

 

可是当我进行到查看上机记录时,看到参考的博客用的是DataTable来判断,本来bool值我就不太懂是怎么回事,又来个Data Table,看来是解决问题的时候了!

DataTable

 

        public DataTable MachineRecordFacade(int userID)
        {

            BLL.MachineRecordBll mrBll = new BLL.MachineRecordBll();
            DataTable table= mrBll.MRBll(userID);
            
            return table;
        }

系统要查找卡号对应的上机记录,一定要在外观层中判断是否有该帐号的记录,如上图。而为什么这里用了DataTable呢?因为我们要查找的是数据库中帐号对应的所有记录信息,而不是单一的值。这里一定要注意不仅仅是在外观层用了DataTable,你在业务逻辑层也要使用DataTable如图

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;

namespace BLL
{
    public class MachineRecordBll
    {
        public DataTable MRBll(int userID)
        {
            Factory.LoginFactory fact = new Factory.LoginFactory();
            IDAL.MachineRecordIDAL idal = fact.CreateInstance();
            DataTable line = idal.MachineRecordInquire(userID);
            return line;           
        }
    }
}

Bool只能起到查找单一数据的作用。当然我们也可以用Bool值来先判断卡号是否存在于上机记录表中,但最后还是要查询出表里信息,使用DataTable。

你可能感兴趣的:(C#机房重构之DataTable查询表)