美文网首页
5 C#WinForm开发权限管理历程之功能管理

5 C#WinForm开发权限管理历程之功能管理

作者: 白龙马5217 | 来源:发表于2019-11-28 15:48 被阅读0次

    0 C#WinForm开发权限管理历程之权限管理概述
    1 C#WinForm开发权限管理历程之三层架构
    2 C#WinForm开发权限管理历程之新建项目
    3 C#WinForm开发权限管理历程之Form1完善
    4 C#WinForm开发权限管理历程之主控窗体功能实现

    5.1 创建功能管理数据库表sys_menu

    Oracle数据库,创建表的Sql语句如下:

    -- Create table
    create table SYS_MENU
    (
      pk_id  VARCHAR2(4) not null,
      s_name VARCHAR2(50) not null,
      s_form VARCHAR2(100) not null,
      s_note VARCHAR2(100)
    );
    
    -- Add comments to the table 
    comment on table SYS_MENU
      is '系统功能表';
    -- Add comments to the columns 
    comment on column SYS_MENU.pk_id
      is '功能ID';
    comment on column SYS_MENU.s_name
      is '功能名称';
    comment on column SYS_MENU.s_form
      is '命名空间.Form';
    comment on column SYS_MENU.s_note
      is '注释';
    -- Create/Recreate primary, unique and foreign key constraints 
    alter table SYS_MENU
      add constraint PK_SYS_MENU primary key (PK_ID);
    

    5.2 创建实体模型SysMenu类

    原来在2.4小节创建的类Class1.cs改名为SysMenu.cs,代码如下:

    using System.ComponentModel;
    namespace Model
    {
        public class SysMenu
        {
            [Description("功能ID")]
            public string pk_id { get; set; }
            [Description("功能名称")]
            public string s_name { get; set; }
            [Description("命名空间.Form")]
            public string s_form { get; set; }
            [Description("注释")]
            public string s_mote { get; set; }
        }
    }
    

    5.3 实现DAL层
    -首先类名改为DALsysMenu
    -添加引用System.Data.OracleClient


    添加Oracle引用

    -添加Model引用

    using System.Data.OracleClient;
    using Model;
    

    -先实现一个Select 方法
    代码如下:

    using System.Data;
    using System.Data.OracleClient;
    
    namespace DAL
    {
        public class DALsysMenu
        {
            #region 连接字符串
            public const string CONSTRING = "Data Source=CQYH;User ID=nmis;password=nmis";
            #endregion
    
            #region SQL_Select
            public static string SQL_Select = "Select * from sys_menu ";
            #endregion
            #region Select 方法
            public static DataTable Select(string sql_select) {
                DataTable dt = null;
                OracleConnection conn = new OracleConnection(CONSTRING);
    
                try
                {                
                    dt = new DataTable();
                    OracleDataAdapter oda = new OracleDataAdapter(sql_select,conn);
                    oda.Fill(dt);
                }
                catch
                {
                    throw;
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
                return dt;
            }
            #endregion
    

    5.4 实现BLL层

    添加2个引用System.Data;DAL;

    using System.Data;
    using DAL;
    
    namespace BLL
    {
        public class BLLsysMemu
        {
            public static DataTable Select() {
                return DALsysMenu.Select(DALsysMenu.SQL_Select);
            }
        }
    }
    

    5.5 实现UI层的引用

    -UI层先添加引用BLL

    -打开XIT窗体,添加一个DataGridView控件dataGridView1
    -窗体的Load事件代码如下:

    using System.Windows.Forms;
    using BLL;
    
    namespace AppUI.SDI
    {
        public partial class XIT : Form
        {
            public XIT()
            {
                InitializeComponent();
            }
    
            private void XIT_Load(object sender, System.EventArgs e)
            {
                this.dataGridView1.DataSource = BLLsysMemu.Select();
            }
        }
    }
    

    5.6 表里先增加几行演示数据

    PK_ID   S_NAME  S_FORM  S_NOTE  ROWID
    

    1 1000 基础数据 AppUI.SDI.JIC
    2 2000 业务数据 AppUI.SDI.YEW
    3 9000 系统管理 AppUI.SDI.XIT

    5.7 测试一下运行效果

    演示效果

    5.8 列表前面还差一个行号

    加个行号

    OK出效果了吧,先喝口水,休息一下,再上个厕所。

    相关文章

      网友评论

          本文标题:5 C#WinForm开发权限管理历程之功能管理

          本文链接:https://www.haomeiwen.com/subject/wlqbwctx.html