您的位置:首页 > 其它

工资管理系统

2010-12-08 22:16 246 查看
前段时间一直在修改该系统的原型,刚开始接触这个系统的时候,就感觉漏洞百出,首先是用户权限分配不合理,再者是数据库设计不合理,且不说用中文命名的习惯不好,该代码冗余严重。奈何实力有限,只能在其基础上更改一二!!!

再次列出部分内容,希望各位指点一二...



首先是用户权限分为四级,各部分各司其所咯,感谢拖鞋先生设计界面!!!

现在回顾这些代码,有点后怕,因为都是按照自己所设想的一步步修改,根本没有做过任何分析,

现在截图其中一个页面代码,希望各位可以从数据方面提点建议,

页面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值判断是否允许打开,对网络安全这块的空白,让我不知所措。

可以说问题还是挺多的,一步一步,一个脚印!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: