zoukankan      html  css  js  c++  java
  • WINFORM权限系统开发系列教程(四)数据业务封装

    数据访问DAL和实体类

    UserInfomModel.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Xwy.WindowsFormsApp.Models
    {
        public class UserInfoModel
        {
            public int UserId { get; set; }
            public string UserName { get; set; }
            public string UserPwd { get; set; }
    
        }
    }
    

      

    RoleInfoModel.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Xwy.WindowsFormsApp.Models
    {
        public class RoleInfoModel
        {
            public int RoleId { get; set; }
            public string RoleName { get; set; }
    
    
    
        }
    }
    

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Xwy.WindowsFormsApp.Models
    {
        public class MenuInfoModel
        {
            public int MenuId { get; set; }
            public string MenuName { get; set; }
            public int ParentId { get; set; }
    
            public string FrmName { get; set; }
    
            public string MKey { get; set; }
    
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Xwy.WindowsFormsApp.Models
    {
        public class MenuInfoAllModel:MenuInfoModel
        {
            //public int MenuId { get; set; }
            //public string MenuName { get; set; }
            //public int ParentId { get; set; }
    
            //public string FrmName { get; set; }
    
            //public string MKey { get; set; }
    
            public string ParentName { get; set; }
    
    
        }
    }

     

    UserDAL.cs

    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Xwy.WindowsFormsApp.Common;
    using Xwy.WindowsFormsApp.DAL.Helpers;
    using Xwy.WindowsFormsApp.Models;
    
    namespace Xwy.WindowsFormsApp.DAL
    {
        public class UserDAL
        {
            public int Login(UserInfoModel user)
            {
                string sql = "select UserId from UserInfos where UserName=@UserName and UserPwd=@UserPwd";
                SqlParameter[] paras =
                {
                    new SqlParameter("@UserName",user.UserName),
                    new SqlParameter("@UserPwd",user.UserPwd)
                };
                object oId = DBHelper.ExecuteScalar(sql,1,paras);
                if (oId != null && oId.ToString() != "")
                {
                    return oId.GetInt();
                }
                else
                {
                    return 0;
                }
            }
            
            public List<RoleInfoModel> GetUserRoles(int userId)
            {
                string sql = "select r.RoleId,RoleName from UserRoleInfos ur inner join RoleInfos r on r.RoleId=ur.RoleId where UserId=@UserId";
                SqlParameter paraId = new SqlParameter("@UserId", userId);
                SqlDataReader dr = DBHelper.ExecuteReader(sql, 1, paraId);
                List<RoleInfoModel> list = new List<RoleInfoModel>();
                while(dr.Read())
                {
                    RoleInfoModel roleInfo = new RoleInfoModel();
                    roleInfo.RoleId = dr["RoleId"].ToString().GetInt();
                    roleInfo.RoleName = dr["RoleName"].ToString();
                    list.Add(roleInfo);
                }
                dr.Close();//关闭阅读器
                return list;
            }
        
        }
    }
    

    MenuDAL.cs

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Xwy.WindowsFormsApp.Common;
    using Xwy.WindowsFormsApp.DAL.Helpers;
    using Xwy.WindowsFormsApp.Models;
    
    namespace Xwy.WindowsFormsApp.DAL
    {
        public class MenuDAL
        {
            public List<MenuInfoAllModel> GetMenuList(int parentId,string mName)
            {
                List<MenuInfoAllModel> list = new List<MenuInfoAllModel>();
    
                string sql = "select m.MenuId,m.MenuName,m.ParentId,p.MenuName ParentName,m.FrmName,m.MKey from MenuInfos m left join MenuInfos p on m.ParentId=p.MenuId where 1=1";
                if (parentId > 0)
                    sql += " and m.ParentId=@parentId";
                if (!string.IsNullOrEmpty(mName))
                    sql += " and m.MenuName like @mName";
                SqlParameter[] paras =
               {
                    new SqlParameter("@parentId",parentId),
                    new SqlParameter("@mName",$"%{mName}%")
                };
                SqlDataReader dr = DBHelper.ExecuteReader(sql, 1, paras);
                while (dr.Read())
                {
                    MenuInfoAllModel menu = new MenuInfoAllModel();
                    menu.MenuId = dr["MenuId"].ToString().GetInt();
                    menu.MenuName = dr["MenuName"].ToString();
                    menu.ParentId = dr["ParentId"].ToString().GetInt();
                    menu.ParentName = dr["ParentName"].ToString();
                    menu.FrmName = dr["FrmName"].ToString();
                    menu.MKey = dr["MKey"].ToString();
                    list.Add(menu);
                }
                return list;
            }
            
            //获取父级菜单列表
            public DataTable GetParentList()
            {
                string sql = "select m.ParentId,p.MenuName ,count(1) count from MenuInfos m inner join MenuInfos p on m.ParentId=p.MenuId group by m.ParentId,p.MenuName";
                DataTable dt = DBHelper.GetDataTable(sql,1);
                return dt;
            
            }
            /// <summary>
            /// 获取用户角色菜单列表
            /// </summary>
            /// <param name="roleIds"></param>
            /// <returns></returns>
            public List<MenuInfoModel> GetUserMenuList(string roleIds)
            {
                string sql;
                if (roleIds.Split(',').Contains("1"))
                {
                    sql = "select MenuId,MenuName,ParentId,FrmName,MKey from MenuInfos";
                }
                else
                {
                    sql = "select rm.MenuId,MenuName,ParentId,FrmName,MKey from RoleMenuInfos rm inner join MenuInfos m on rm.MenuId=m.MenuId where rm.RoleId in (" + roleIds + ")";
    
                }
                SqlDataReader dr = DBHelper.ExecuteReader(sql, 1);
                List<MenuInfoModel> list = new List<MenuInfoModel>();
                while(dr.Read())
                {
                    MenuInfoModel menuInfo = new MenuInfoModel();
                    menuInfo.MenuId = dr["MenuId"].ToString().GetInt();
                    menuInfo.MenuName = dr["MenuName"].ToString();
                    menuInfo.ParentId= dr["ParentId"].ToString().GetInt();
                    menuInfo.FrmName = dr["FrmName"].ToString();
                    menuInfo.MKey = dr["MKey"].ToString();
    
                    list.Add(menuInfo);
                }
                dr.Close();//关闭阅读器
                return list;
            }
    
            /// <summary>
            /// 删除菜单信息
            /// </summary>
            /// <param name="menuId"></param>
            /// <returns></returns>
            public bool DeleteMenu(int menuId)
            {
                string sqlDelRoleMenu = "delete from RoleMenuInfos where RoleMenuInfos where MenuId=@menuId";
                string sqlDelMenu="delete from MenuInfos where MenuId=@menuId";
                SqlParameter[] paras = { new SqlParameter("@menuId", menuId) };
                List<CommandInfo> comList = new List<CommandInfo>();
                comList.Add(new CommandInfo
                {
                    CommandText = sqlDelRoleMenu,
                    IsProc = false,
                    Paras = paras
                });
                comList.Add(new CommandInfo
                {
                    CommandText = sqlDelMenu,
                    IsProc = false,
                    Paras = paras
                });
                return DBHelper.ExecuteTrans(comList);
    
            }
    
            /// <summary>
            /// 获取所有菜单数据(主要用于绑定下拉框)
            /// </summary>
            /// <returns></returns>
            public DataTable GetAllMenu()
            {
                string sql = "select MenuId,MenuName from MenuInfos";
                return DBHelper.GetDataTable(sql,1);
    
            }
    
    
            public MenuInfoModel GetMenuInfoById(int menuId)
            {
                string sql = "select MenuId,MenuName,ParentId,FrmName,MKey from MenuInfos where MenuId=@menuId ";
                SqlParameter paraId = new SqlParameter("@menuId", menuId);
                SqlDataReader dr = DBHelper.ExecuteReader(sql, 1, paraId);
                MenuInfoModel menuInfo = default(MenuInfoModel);
                if (dr.Read())
                {
                    menuInfo = new MenuInfoModel();
                    menuInfo.MenuId = dr["MenuId"].ToString().GetInt();
                    menuInfo.MenuName = dr["MenuName"].ToString();
                    menuInfo.ParentId = dr["ParentId"].ToString().GetInt();
                    menuInfo.FrmName = dr["FrmName"].ToString();
                    menuInfo.MKey = dr["MKey"].ToString();
                }
                dr.Close();
                return menuInfo;
            }
    
            public bool ExistMenuName(string menuName)
            {
                string sql = "select count(1) from MenuInfos where MenuName=@menuName";
                SqlParameter paraName = new SqlParameter("@menuName", menuName);
                object oCount = DBHelper.ExecuteScalar(sql, 1, paraName);
                if (oCount != null && oCount.ToString() != "")
                {
                    return oCount.GetInt() > 0;
                }
                else
                {
                    return false;
                }
            }
    
            public bool AddMenuInfo(MenuInfoModel menuInfo)
            {
                string sql = "insert into MenuInfos(MenuName,ParentId,FrmName,MKey) values(@menuName,@parentId,@frmName,@mKey)";
    
                SqlParameter[] paras = 
               { 
                    new SqlParameter("@menuName", menuInfo.MenuName),
                    new SqlParameter("@parentId", menuInfo.ParentId),
                    new SqlParameter("@frmName", menuInfo.FrmName),
                    new SqlParameter("@mKey", menuInfo.MKey)
                };
                return DBHelper.ExecuteNonQuery(sql, 1, paras) > 0;
            }
            public bool UpdateMenuInfo(MenuInfoModel menuInfo)
            {
                string sql = "update  MenuInfos set MenuName=@menuName,ParentId=@parentId,FrmName=@frmName,MKey=@mKey where MenuId=@menuId ";
    
                SqlParameter[] paras =
               {
                    new SqlParameter("@menuName", menuInfo.MenuName),
                    new SqlParameter("@parentId", menuInfo.ParentId),
                    new SqlParameter("@frmName", menuInfo.FrmName),
                    new SqlParameter("@mKey", menuInfo.MKey),
                    new SqlParameter("@menuId", menuInfo.MenuId),
                };
                return DBHelper.ExecuteNonQuery(sql, 1, paras) > 0;
            }
        }
    }

     RoleDAL.cs

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Xwy.WindowsFormsApp.Common;
    using Xwy.WindowsFormsApp.DAL.Helpers;
    using Xwy.WindowsFormsApp.Models;
    
    namespace Xwy.WindowsFormsApp.DAL
    {
        public class MenuDAL
        {
            public List<MenuInfoAllModel> GetMenuList(int parentId,string mName)
            {
                List<MenuInfoAllModel> list = new List<MenuInfoAllModel>();
    
                string sql = "select m.MenuId,m.MenuName,m.ParentId,p.MenuName ParentName,m.FrmName,m.MKey from MenuInfos m left join MenuInfos p on m.ParentId=p.MenuId where 1=1";
                if (parentId > 0)
                    sql += " and m.ParentId=@parentId";
                if (!string.IsNullOrEmpty(mName))
                    sql += " and m.MenuName like @mName";
                SqlParameter[] paras =
               {
                    new SqlParameter("@parentId",parentId),
                    new SqlParameter("@mName",$"%{mName}%")
                };
                SqlDataReader dr = DBHelper.ExecuteReader(sql, 1, paras);
                while (dr.Read())
                {
                    MenuInfoAllModel menu = new MenuInfoAllModel();
                    menu.MenuId = dr["MenuId"].ToString().GetInt();
                    menu.MenuName = dr["MenuName"].ToString();
                    menu.ParentId = dr["ParentId"].ToString().GetInt();
                    menu.ParentName = dr["ParentName"].ToString();
                    menu.FrmName = dr["FrmName"].ToString();
                    menu.MKey = dr["MKey"].ToString();
                    list.Add(menu);
                }
                return list;
            }
            
            //获取父级菜单列表
            public DataTable GetParentList()
            {
                string sql = "select m.ParentId,p.MenuName ,count(1) count from MenuInfos m inner join MenuInfos p on m.ParentId=p.MenuId group by m.ParentId,p.MenuName";
                DataTable dt = DBHelper.GetDataTable(sql,1);
                return dt;
            
            }
            /// <summary>
            /// 获取用户角色菜单列表
            /// </summary>
            /// <param name="roleIds"></param>
            /// <returns></returns>
            public List<MenuInfoModel> GetUserMenuList(string roleIds)
            {
                string sql;
                if (roleIds==""||roleIds.Split(',').Contains("1"))
                {
                    sql = "select MenuId,MenuName,ParentId,FrmName,MKey from MenuInfos";
                }
                else
                {
                    sql = "select rm.MenuId,MenuName,ParentId,FrmName,MKey from RoleMenuInfos rm inner join MenuInfos m on rm.MenuId=m.MenuId where rm.RoleId in (" + roleIds + ")";
    
                }
                SqlDataReader dr = DBHelper.ExecuteReader(sql, 1);
                List<MenuInfoModel> list = new List<MenuInfoModel>();
                while(dr.Read())
                {
                    MenuInfoModel menuInfo = new MenuInfoModel();
                    menuInfo.MenuId = dr["MenuId"].ToString().GetInt();
                    menuInfo.MenuName = dr["MenuName"].ToString();
                    menuInfo.ParentId= dr["ParentId"].ToString().GetInt();
                    menuInfo.FrmName = dr["FrmName"].ToString();
                    menuInfo.MKey = dr["MKey"].ToString();
    
                    list.Add(menuInfo);
                }
                dr.Close();//关闭阅读器
                return list;
            }
    
            /// <summary>
            /// 删除菜单信息
            /// </summary>
            /// <param name="menuId"></param>
            /// <returns></returns>
            public bool DeleteMenu(int menuId)
            {
                string sqlDelRoleMenu = "delete from RoleMenuInfos where RoleMenuInfos where MenuId=@menuId";
                string sqlDelMenu="delete from MenuInfos where MenuId=@menuId";
                SqlParameter[] paras = { new SqlParameter("@menuId", menuId) };
                List<CommandInfo> comList = new List<CommandInfo>();
                comList.Add(new CommandInfo
                {
                    CommandText = sqlDelRoleMenu,
                    IsProc = false,
                    Paras = paras
                });
                comList.Add(new CommandInfo
                {
                    CommandText = sqlDelMenu,
                    IsProc = false,
                    Paras = paras
                });
                return DBHelper.ExecuteTrans(comList);
    
            }
    
            /// <summary>
            /// 获取所有菜单数据(主要用于绑定下拉框)
            /// </summary>
            /// <returns></returns>
            public DataTable GetAllMenu()
            {
                string sql = "select MenuId,MenuName from MenuInfos";
                return DBHelper.GetDataTable(sql,1);
    
            }
    
    
            public DataTable GetAllTvMenus()
            {
                string sql = "select MenuId,MenuName,ParentId from MenuInfos";
                return DBHelper.GetDataTable(sql, 1);
    
            }
    
    
            public MenuInfoModel GetMenuInfoById(int menuId)
            {
                string sql = "select MenuId,MenuName,ParentId,FrmName,MKey from MenuInfos where MenuId=@menuId ";
                SqlParameter paraId = new SqlParameter("@menuId", menuId);
                SqlDataReader dr = DBHelper.ExecuteReader(sql, 1, paraId);
                MenuInfoModel menuInfo = default(MenuInfoModel);
                if (dr.Read())
                {
                    menuInfo = new MenuInfoModel();
                    menuInfo.MenuId = dr["MenuId"].ToString().GetInt();
                    menuInfo.MenuName = dr["MenuName"].ToString();
                    menuInfo.ParentId = dr["ParentId"].ToString().GetInt();
                    menuInfo.FrmName = dr["FrmName"].ToString();
                    menuInfo.MKey = dr["MKey"].ToString();
                }
                dr.Close();
                return menuInfo;
            }
    
            public bool ExistMenuName(string menuName)
            {
                string sql = "select count(1) from MenuInfos where MenuName=@menuName";
                SqlParameter paraName = new SqlParameter("@menuName", menuName);
                object oCount = DBHelper.ExecuteScalar(sql, 1, paraName);
                if (oCount != null && oCount.ToString() != "")
                {
                    return oCount.GetInt() > 0;
                }
                else
                {
                    return false;
                }
            }
    
            public bool AddMenuInfo(MenuInfoModel menuInfo)
            {
                string sql = "insert into MenuInfos(MenuName,ParentId,FrmName,MKey) values(@menuName,@parentId,@frmName,@mKey)";
    
                SqlParameter[] paras = 
               { 
                    new SqlParameter("@menuName", menuInfo.MenuName),
                    new SqlParameter("@parentId", menuInfo.ParentId),
                    new SqlParameter("@frmName", menuInfo.FrmName),
                    new SqlParameter("@mKey", menuInfo.MKey)
                };
                return DBHelper.ExecuteNonQuery(sql, 1, paras) > 0;
            }
            public bool UpdateMenuInfo(MenuInfoModel menuInfo)
            {
                string sql = "update  MenuInfos set MenuName=@menuName,ParentId=@parentId,FrmName=@frmName,MKey=@mKey where MenuId=@menuId ";
    
                SqlParameter[] paras =
               {
                    new SqlParameter("@menuName", menuInfo.MenuName),
                    new SqlParameter("@parentId", menuInfo.ParentId),
                    new SqlParameter("@frmName", menuInfo.FrmName),
                    new SqlParameter("@mKey", menuInfo.MKey),
                    new SqlParameter("@menuId", menuInfo.MenuId),
                };
                return DBHelper.ExecuteNonQuery(sql, 1, paras) > 0;
            }
        }
    }
  • 相关阅读:
    互联网常用网络基础命令
    使用idea搭建SpringBoot + jsp的简单web项目
    spring boot + mybatis + layui + shiro后台权限管理系统
    springboot-manager
    python中pip 安装、升级、升级固定的包
    管理后台快速开发脚手架 pyadmin
    Mac 基于Python搭建Django应用框架
    基于Python搭建Django后台管理系统
    python3 django layui后台管理开源框架分享(码云)
    轻量级办公平台Sandbox
  • 原文地址:https://www.cnblogs.com/xiewenyu/p/13064061.html
Copyright © 2011-2022 走看看