权限系统发现BUG,请按提示升级
作者:C/S框架网  发布日期:2014-12-29 17:02:17
  权限系统发现BUG,请按提示升级


系统管理模块权限系统发现BUG:

1. 新增角色保存后,再点修改按钮, 修改数据后点保存,系统抛出异常, 原因是tb_MyRole表预设是isid作为主键,在新增后isid值为空,因此点修改无法取出当前数据.

贴图图片

2. 删除角色和菜单没有加Dataset条件,因此在多业务帐套环境下会删除所有相同的编号, 单个帐套不存在问题.

3. tb_MyMenu,tb_MyRole,tb_MyGroup三张表增加记录主键RowID, 新增记录时分配GUID32字符, 解决Bug1







SQL脚本,添加RowID字段:


SQL Code:

--添加字段, 手工给RowID设索引
ALTER TABLE tb_MyGroup ADD RowID VARCHAR(32)
ALTER TABLE tb_MyRole ADD RowID VARCHAR(32)
ALTER TABLE tb_MyMenu ADD RowID VARCHAR(32)

--更新预设数据
UPDATE dbo.tb_MyGroup SET RowID=REPLACE(NEWID(),'-','')
UPDATE dbo.tb_MyRole SET RowID=REPLACE(NEWID(),'-','')
UPDATE dbo.tb_MyMenu SET RowID=REPLACE(NEWID(),'-','')

//来源:C/S框架网(www.csframework.com) QQ:1980854898






bllRole.cs文件修改:

C# Code:

/// <summary>
/// 创建当前角色用于绑定文本框的数据源
/// </summary>
/// <param name="sourceRow"></param>
public override void CreateDataBinder(DataRow sourceRow)
{
   base.CreateDataBinder(sourceRow);
   
   //新增记录,给帐套编号预设值
   if (_DataBinder.Rows[0].RowState == DataRowState.Added)
   {
      _DataBinder.Rows[0][tb_MyRole.RowID] = Globals.NewRowID();
      _DataBinder.Rows[0][tb_MyRole.DataSetID] = Loginer.CurrentUser.DataSetID;
   }
}

//来源:C/S框架网(www.csframework.com) QQ:1980854898






bllMenu.cs文件 AddOrUpdateMenu方法:


C# Code:

//导入菜单
DataRow append = menuData.NewRow();
append[tb_MyMenu.RowID] = Globals.NewRowID();//GUID32,去掉"-"分隔符

//来源:C/S框架网(www.csframework.com) QQ:1980854898

贴图图片







bllGroup.cs文件修改:

C# Code:

public override void CreateDataBinder(DataRow sourceRow)
{
   base.CreateDataBinder(sourceRow);
   
   //新增记录,给帐套编号预设值
   if (_DataBinder.Rows[0].RowState == DataRowState.Added)
   {
      _DataBinder.Rows[0][tb_MyGroup.RowID] = Globals.NewRowID();
      _DataBinder.Rows[0][tb_MyGroup.DataSetID] = Loginer.CurrentUser.DataSetID;
   }
}

//来源:C/S框架网(www.csframework.com) QQ:1980854898








frmGroupManagement.cs文件修改DoDelete方法:


贴图图片







***  更新后仍有问题请QQ联系 ***


VIP用户请下载三张表的ORM Model文件




点击下载附件 (VIP会员下载) 点击下载附件 (如下载失败,请邮件通知我们寄回给您,或QQ:23404761留言.)
上一篇 下一篇