/// <summary> /// 检查用的输入是否合法.合法返回true,否则返回false /// </summary> /// <param name="isAdd">是否新增时检查</param> /// <returns></returns> private bool CheckUserInput(bool isAdd) { //取得各文本框 var txtCustId = (TextBox)fvCustMgrAdd.FindControl("txtCustId"); var txtCustName = (TextBox)fvCustMgrAdd.FindControl("txtCustName"); //客户代码 string str = txtCustId.Text.Trim(); if (str.Length == 0) { throw new Exception("客户代码不能为空!"); } else if (str.Contains("%") || str.Contains("_")) { //不能包含"%"和"_" throw new Exception("客户代码不能包含百分号\"%\"和下划线\"_\"!"); } else if (isAdd) { //检测是否存在 using (var da = new t_pmc_custTableAdapter()) using (var tab = da.GetDataById(str)) { //存在该客户代码 if (tab.Rows.Count > 0) { //客户代码已经存在 throw new Exception("客户代码已经存在!"); } } } //客户名称 str = txtCustName.Text.Trim(); if (str.Length == 0) { throw new Exception("客户名称不能为空!"); } else if (str.Contains("%") || str.Contains("_")) { //不能包含"%"和"_" throw new Exception("客户名称不能包含百分号\"%\"和下划线\"_\"!"); } else if (isAdd) { //检测是否存在 using (var da = new t_pmc_custTableAdapter()) using (var tab = da.GetDataLikeCustName(str)) { //存在该客户名称 if (tab.Rows.Count > 0) { //客户名称已经存在 throw new Exception("客户名称已经存在!"); } } } //可以提交 return true; }
protected void lvCustMgr_ItemDeleting(object sender, ListViewDeleteEventArgs e) { //默认取消请求 e.Cancel = true; //检测是否含有session if (Session.Count < 5) { //跳转 Response.Redirect("/Account/Login", true); //停止加载后续内容 Response.End(); //直接返回 return; } //当前用户所在部门 string deptName = Session["dept_name"].ToString(); //当前角色id Int16 roleId = Convert.ToInt16(Session["role_id"]); //检测是否有权限 if ((deptName != mustDeptName && deptName != "样板") || (roleId != 0 && roleId != 1 && roleId != 6)) { throw new Exception("您没有删除记录权限!"); } //当前记录行的数据的客户序号 int id = Convert.ToInt32(e.Keys[0]); //获取当前数据行 using (var da = new t_pmc_custTableAdapter()) using (var conn = da.Connection) { //打开数据库连接 conn.Open(); //当前数据库事务并获取当前行数据 using (var tran = da.Transaction) using (var tab = da.GetDataById(id)) { //获取当前行数据 if (tab.Rows.Count <= 0) { throw new Exception("当前行数据可能已经被其他用户删除!"); } //首行数据 var row = (DataSetPmcCustMgr.t_pmc_custRow)tab.Rows[0]; //之前录入的用户名称 string userName = row.add_person; //检测当前用户所在部门名称和角色以及之前保存该记录的用户部门名称 //当前用户所在部门 string curUserDeptName = Session["dept_name"].ToString(); //用户名称 string curUserName = Session["user_name"].ToString(); //当前角色id Int16 curUserRoleId = Convert.ToInt16(Session["role_id"]); //录入权限用户则必须和原录入用户一样的名字 if (curUserRoleId > 3) { //用户只能操作自己之前录入的 if (userName.ToUpper().Equals(curUserName.ToUpper())) { //显示失败 throw new Exception("当前遗失报废记录录入者并非是您,请找更高级权限的用户操作!"); } } //主管级别可以修改本部门的 else if (curUserRoleId >= 2) { //检测之前录入用户所在部门 using (var daUser = new v_user_dept_roleTableAdapter()) { //设置事务 daUser.Transaction = tran; //检测该用户是否属于该部门 int i = Convert.ToInt32(daUser.CountByUserNameAndDeptName(userName, curUserDeptName)); if (i <= 0) { //主管级别 if (curUserRoleId == 3) //显示失败 throw new Exception("当前遗失报废记录录入者并非是您当前部门用户,请找更高级权限的用户操作!"); } //经理级别可以修改不存在的用户录入的数据 else if (curUserRoleId == 2) { //检测该用户是否属于该部门 i = Convert.ToInt32(daUser.CountByUserName(userName)); if (i > 0) { //显示失败 throw new Exception("当前遗失报废记录录入者并非是您当前部门用户,请找更高级权限的用户操作!"); } } } } } } //允许请求 e.Cancel = false; }
protected void fvCustMgrAdd_ItemUpdating(object sender, FormViewUpdateEventArgs e) { //默认取消请求 e.Cancel = true; //检测是否含有session if (Session.Count < 5) { //跳转 Response.Redirect("/Account/Login", true); //停止加载后续内容 Response.End(); //直接返回 return; } //当前用户所在部门 string procName = Session["proc_name"].ToString(); //当前角色id Int16 roleId = Convert.ToInt16(Session["role_id"]); //检测是否有权限 if ((procName != mustProcName && procName != "样板") || (roleId != 0 && roleId != 1 && roleId != 6)) { throw new Exception("您没有修改记录权限!"); } //用户输入不合法不执行添加操作 if (!CheckUserInput(false)) { return; } //当前记录行的数据的客户序号 string custId = e.Keys[0].ToString(); //获取当前数据行 using (var da = new t_pmc_custTableAdapter()) using (var conn = da.Connection) { //打开数据库连接 conn.Open(); //当前数据库事务并获取当前行数据 using (var tran = da.Transaction) using (var tab = da.GetDataById(custId)) { //获取当前行数据 if (tab.Rows.Count <= 0) { throw new Exception("当前行数据可能已经被其他用户删除!"); } //首行数据 var row = (DataSetPmcCustMgr.t_pmc_custRow)tab.Rows[0]; //之前录入的用户名称 string userName = row.add_person; //检测当前用户所在部门名称和角色以及之前保存该记录的用户部门名称 //当前用户所在部门 string curUserProcName = Session["proc_name"].ToString(); //用户名称 string curUserName = Session["user_name"].ToString(); //当前角色id Int16 curUserRoleId = Convert.ToInt16(Session["role_id"]); //录入权限用户则必须和原录入用户一样的名字 if (curUserRoleId > 3) { //用户只能操作自己之前录入的 if (userName.ToUpper().Equals(curUserName.ToUpper())) { //显示失败 throw new Exception("当前遗失报废记录录入者并非是您,请找更高级权限的用户操作!"); } } //主管级别可以修改本部门的 else if (curUserRoleId >= 2) { //检测之前录入用户所在部门 using (var daUser = new v_user_proc_roleTableAdapter()) { //设置事务 daUser.Transaction = tran; //检测该用户是否属于该部门 int i = Convert.ToInt32(daUser.CountByUserNameAndProcName(userName, curUserProcName)); if (i <= 0) { //主管级别 if (curUserRoleId == 3) //显示失败 throw new Exception("当前遗失报废记录录入者并非是您当前部门用户,请找更高级权限的用户操作!"); } //经理级别可以修改不存在的用户录入的数据 else if (curUserRoleId == 2) { //检测该用户是否属于该部门 i = Convert.ToInt32(daUser.CountByUserName(userName)); if (i > 0) { //显示失败 throw new Exception("当前遗失报废记录录入者并非是您当前部门用户,请找更高级权限的用户操作!"); } } } } } } //设置录入员姓名和时间 e.NewValues["add_person"] = Session["user_name"].ToString(); e.NewValues["last_change_time"] = DateTime.Now; //允许添加 e.Cancel = false; }