工资管理系统
2010-12-08 22:16
246 查看
前段时间一直在修改该系统的原型,刚开始接触这个系统的时候,就感觉漏洞百出,首先是用户权限分配不合理,再者是数据库设计不合理,且不说用中文命名的习惯不好,该代码冗余严重。奈何实力有限,只能在其基础上更改一二!!!
再次列出部分内容,希望各位指点一二...
首先是用户权限分为四级,各部分各司其所咯,感谢拖鞋先生设计界面!!!
现在回顾这些代码,有点后怕,因为都是按照自己所设想的一步步修改,根本没有做过任何分析,
现在截图其中一个页面代码,希望各位可以从数据方面提点建议,
页面asp.net代码
1,本页面是工资的审核页面,我没有分析过在同一个数据表里面通过update进行更改工资的状态已表示是否通过审核是否合理,却感觉没有必要新建另一个数据表存储这些信息。
2,后台的数据查询,插入,更改语句过多,反复的对数据库进行操作,降低了数据加载运行的速度,本人没有学习LINQ TO SQL ,所以对00 的数据处理方式不是很了解,所以在此基础上行,只能牺牲效率,完成任何,罪过罪过......
3,页面的生命周期,因为对页面输出产生的事件的顺序以及作用概念比较模糊,最初将数据绑定放至判断语句if内,导致在多项审核的过程中,页面不会自动回传,页面内容不改变,而数据已经上传数据库处理,得一师兄指导,放至try内,方才解决问题,从这点可以看出对事件的概念的模糊,罪过罪过...
4,用户的登录,用户分为四个等级,虽然密码通过md5加密,页面登录过程也没有用cookies保存任何用户信息,因为考虑到没有这个必要,只是用session,貌似又增加了服务器端的压力,暂不考虑这些, 总感觉安全性低,页面通过session值判断是否允许打开,对网络安全这块的空白,让我不知所措。
可以说问题还是挺多的,一步一步,一个脚印!!!
再次列出部分内容,希望各位指点一二...
首先是用户权限分为四级,各部分各司其所咯,感谢拖鞋先生设计界面!!!
现在回顾这些代码,有点后怕,因为都是按照自己所设想的一步步修改,根本没有做过任何分析,
现在截图其中一个页面代码,希望各位可以从数据方面提点建议,
页面asp.net代码
cs 文件代码 using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Text; using HZU.WQS.web.config; using HZU.DBUtility; using System.Globalization; namespace HZU.WQS.web { public partial class VerifyFujia : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (Session["财务管理"] == null) { Response.Redirect("index.aspx"); } if (!IsPostBack) { DataTable dt = DbHelperSQL.Query("select distinct 部门 from 附加工资表").Tables[0]; foreach (DataRow dr in dt.Rows) { ListItem li = new ListItem(dr["部门"].ToString(), dr["部门"].ToString()); ribu.Items.Add(li); } DataTable dd = DbHelperSQL.Query("select distinct 添加部门 from 附加工资表 where 状态='未审核'").Tables[0]; foreach (DataRow dr in dd.Rows) { ListItem li = new ListItem(dr["添加部门"].ToString(), dr["添加部门"].ToString()); zt.Items.Add(li); } dt.Dispose(); gvDataBind(); } } private void gvDataBind() { DataSet dt1 = DbHelperSQL.Query("select 个人信息.姓名, 附加工资表.* from 附加工资表,个人信息 where 附加工资表.编号=个人信息.编号 and 附加工资表.状态='未审核'"+ViewState["whereStr"]); gvSH.DataSource = dt1; gvSH.DataKeyNames = new string[] { "id" }; gvSH.DataBind(); } protected void gvSH_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) { gvSH.PageIndex = e.NewSelectedIndex; gvDataBind(); } protected void gvSH_RowDeleting(object sender, GridViewDeleteEventArgs e) { try { string id = gvSH.DataKeys[e.RowIndex].Value.ToString(); DbHelperSQL.ExecuteSql("update 附加工资表 set 状态='拒绝', 审核时间='" + DateTime.Now + "' where id=" + id); gvDataBind(); } catch (Exception) { AddInfo.AddJsCode(this, "alert('系统出错!')"); } } protected void gvSH_RowUpdating(object sender, GridViewUpdateEventArgs e) { try { string id = gvSH.DataKeys[e.RowIndex].Value.ToString(); string date = DateTime.Now.ToString("yyyy-MM", DateTimeFormatInfo.InvariantInfo); DateTime day = DateTime.Parse(date.ToString()); DbHelperSQL.ExecuteSql("update 附加工资表 set 状态='通过',审核时间='" + day + "' where id=" + id); //try //{ object hh = DbHelperSQL.GetSingle("select 编号 from 附加工资表 where id='" + id + "'"); DataRow dr = DbHelperSQL.Query("select 个人信息.*,附加工资表.金额 from 个人信息,附加工资表 where 个人信息.编号='" + hh + "'").Tables[0].Rows[0]; bool ree = DbHelperSQL.Exists("select 编号 from 附加总工资 where 编号='" + dr["编号"].ToString() + "' and 年月份 ='" + day + "'"); if (!ree) { DbHelperSQL.ExecuteSql("insert into 附加总工资(编号,部门,总额,年月份) values('" + dr["编号"].ToString() + "','" + dr["部门"].ToString() + "','" + dr["金额"].ToString() + "','" + day + "') "); } else { float chan = float.Parse(dr["金额"].ToString()); DbHelperSQL.ExecuteSql("update 附加总工资 set 总额=总额+'" + chan + "' where 编号='" + dr["编号"].ToString() + "'"); } //} //catch (Exception ex) //{ // AddInfo.AddJsCode(this, "alert('" + ex + "')"); //} gvDataBind(); } catch (Exception) { AddInfo.AddJsCode(this, "alert('系统出错!')"); } } protected void gvSH_PageIndexChanged(object sender, GridViewPageEventArgs e) { gvSH.PageIndex = e.NewPageIndex; gvDataBind(); } protected void Button1_Click1(object sender, EventArgs e) { try { for (int i = 0; i < gvSH.Rows.Count; i++) { CheckBox chk = (CheckBox)gvSH.Rows[i].FindControl("check"); if (chk.Checked == true) { string strSql = "update 附加工资表 set 状态='通过', 审核时间='" + DateTime.Now + "' where id= '" + gvSH.DataKeys[i].Value + "'"; bool p_update = DbHelperSQL.Exists(strSql); if (!p_update) { Response.Write("<script>批准失败,请重试!</script>"); } } } gvDataBind(); checkpz.Checked = false; } catch (Exception) { AddInfo.AddJsCode(this, "alert('系统出错!')"); } } protected void checkpz_CheckedChanged(object sender, EventArgs e) { for (int i = 0; i < gvSH.Rows.Count; i++) { CheckBox chk = (CheckBox)gvSH.Rows[i].FindControl("check"); if (checkpz.Checked == true) { chk.Checked = true; } else { chk.Checked = false; } } } protected void Button2_Click(object sender, EventArgs e) { try { for (int i = 0; i < gvSH.Rows.Count; i++) { CheckBox chk = (CheckBox)gvSH.Rows[i].FindControl("check"); if (chk.Checked == true) { string strSql = "update 附加工资表 set 状态='拒绝', 审核时间='" + DateTime.Now + "' where id= '" + gvSH.DataKeys[i].Value + "'"; bool p_update = DbHelperSQL.Exists(strSql); if (!p_update) { Response.Write("<script>拒绝失败,请重试!</script>"); } } } gvDataBind(); checkpz.Checked = false; } catch (Exception) { AddInfo.AddJsCode(this, "alert('系统出错!')"); } } protected void btnree_Click(object sender, EventArgs e) { ViewState["whereStr"] = ""; ViewState["whereStr1"] = ""; string dep = ribu.SelectedValue; string name = SName.Text; string state = zt.SelectedValue; string sqlStr = "select 附加工资表.*,个人信息.姓名 from 附加工资表,个人信息 where 附加工资表.编号=个人信息.编号 and 附加工资表.状态='未审核'"; if (dep != "") ViewState["whereStr"] = ViewState["whereStr"] + " and 附加工资表.部门='" + dep + "' "; if (name != "") ViewState["whereStr"] = ViewState["whereStr"] + " and 个人信息.姓名='" + name + "' "; if (state != "") ViewState["whereStr"] = ViewState["whereStr"] + " and 附加工资表.添加部门='" + state + "' "; DataSet ds = DbHelperSQL.Query(sqlStr + ViewState["whereStr"] + ViewState["whereStr1"]); gvSH.DataSource = ds; gvSH.DataBind(); } } }
1,本页面是工资的审核页面,我没有分析过在同一个数据表里面通过update进行更改工资的状态已表示是否通过审核是否合理,却感觉没有必要新建另一个数据表存储这些信息。
2,后台的数据查询,插入,更改语句过多,反复的对数据库进行操作,降低了数据加载运行的速度,本人没有学习LINQ TO SQL ,所以对00 的数据处理方式不是很了解,所以在此基础上行,只能牺牲效率,完成任何,罪过罪过......
3,页面的生命周期,因为对页面输出产生的事件的顺序以及作用概念比较模糊,最初将数据绑定放至判断语句if内,导致在多项审核的过程中,页面不会自动回传,页面内容不改变,而数据已经上传数据库处理,得一师兄指导,放至try内,方才解决问题,从这点可以看出对事件的概念的模糊,罪过罪过...
4,用户的登录,用户分为四个等级,虽然密码通过md5加密,页面登录过程也没有用cookies保存任何用户信息,因为考虑到没有这个必要,只是用session,貌似又增加了服务器端的压力,暂不考虑这些, 总感觉安全性低,页面通过session值判断是否允许打开,对网络安全这块的空白,让我不知所措。
可以说问题还是挺多的,一步一步,一个脚印!!!
相关文章推荐
- C#桌面办公应用-工资管理系统系列五
- 阿里怎么发工资?自研薪酬管理系统首次曝光
- c++程序课程设计的内容--职工工资管理系统
- 阿里怎么发工资?自研薪酬管理系统首次曝光
- 工资管理系统
- m1-工资管理系统
- 我的c语言职工工资管理系统-链表做的
- jsp 工资管理系统
- 企业工资管理系统(毕业论文+源程序)
- C语言实现的工资管理系统
- 阿里怎么发工资?自研薪酬管理系统首次曝光
- 一套pb6.5开发的高校工资管理系统毕业设计
- c++实训报告之高校工资管理系统
- 4_python之路之模拟工资管理系统
- 【勤哲应用】用勤哲Excel服务器做工资管理系统
- c语言实现的简单的员工工资管理系统
- 企业工资管理系统(毕业论文)
- 【c++面向对象编程】工资管理系统
- 工资管理系统 sql server代码
- 公布一下工资管理系统中核心部分工资计算的代码