#region using System; using System.Data; using CSFrameworkV5.Core; using CSFrameworkV5.Core.CodeGenerator; using CSFrameworkV5.Models; ///*************************************************************************/ ///* ///* 文件名 :dalMenu.cs ///* 程序说明 : 菜单数据字典的DAL层 ///* 原创作者 :www.csframework.com ///* ///* Copyright 2006-2021 wwww.csframework.com, 保留所有权利. ///* ///**************************************************************************/ #endregion namespace CSFrameworkV5.DataAccess { /// /// 菜单数据字典的DAL层 /// [DefaultORM_UpdateMode(typeof(tb_MyMenu), true)] public class dalMenu : dalBaseDataDict { public dalMenu(Loginer loginer) : base(loginer) { _KeyName = tb_MyMenu.__KeyName; _TableName = tb_MyMenu.__TableName; _ModelType = typeof(tb_MyMenu); _Database = DatabaseProvider.SystemDatabase; } /// /// 根据表名获取该表的SQL命令生成器 /// /// 表名 /// protected override IGenerateSqlCommand CreateSqlGenerator( DataTable table) { Type ORM = null; if (table.TableName == tb_MyMenu.__TableName) ORM = typeof(tb_MyMenu); if (table.TableName == tb_MyFormTagName.__TableName) ORM = typeof(tb_MyFormTagName); if (ORM == null) throw new Exception(table.TableName + "表没有ORM模型!"); //支持两种SQL命令生成器 return new GenerateSqlCmdByTableFields(ORM, table, GeneratorFactory); } /// /// 根据菜单名删除 /// /// 菜单名, menuName /// public override bool Delete(string keyValue) { var sp = _Database.CreateSqlProc("usp_DeleteMenu"); sp.AddParam("MenuName", DbType.String, keyValue); sp.AddParam("DataSetID", DbType.String, _Loginer.DBID); var i = _Database.ExecuteCommand(sp.Command); return true; } public override DataTable GetDataDictByTableName(string tableName) { if (string.IsNullOrEmpty(tableName)) throw new Exception("表名不能为空!"); var sql = $"SELECT * FROM {tableName} WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY ModuleID"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, TableName); } public DataTable GetMenuPicker() { var sql = $"SELECT ModuleID,MenuName,MenuCaption FROM tb_MyMenu WHERE DataSetID={_Database.ParamSymboName}DataSetID AND MenuCaption<>{_Database.ParamSymboName}MenuCaption ORDER BY ModuleID"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); cmd.AddParam("MenuCaption", "-"); return _Database.GetTable(cmd.Command, TableName); } public override DataTable GetSummaryData() { AssertTableName(); var sql = $"SELECT * FROM {TableName} WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY ModuleID"; var cmd = _Database.CreateCommand(sql); cmd.AddParam("DataSetID", _Loginer.DBID); return _Database.GetTable(cmd.Command, TableName); } } }