为了区别集团其他分公司,决定给相应的表加上factory_id 作为标识,并设为主键。
1.修改部门表后发现aspxgridview居然修改后不会更新,也不报错,比较奇怪,最后是删掉后重新再拉控件才完成的。
2.由于前期通过修改存活标识来重写删除方法,添加了factory_id后,又把该列Visable=fault,于是删除不成功,报缺少@factory_id的错误,于是又重写删除的sql语句“UPDATE [department] SET live_tag='0' WHERE [dept_id] = @dept_id”,将“and factory_id=@factory”删除。
3.有了前面的教训,修改资产信息表时特别小心,先将数据库中的表修改,再修改添加方法(也就加个字段),然后一看,居然以前的查询结果不会影响,暗自高兴,开始以为会改很多。
4.最后重新将每个功能过了一遍,还是发现了不少问题。为了能测试,新建一张临时的用户权限表,因为平台集成了比较多的系统,所以将每个系统分不同角色:浏览,修改,不可见;准备在用户登陆的时候查出对每个系统的权限用session来传给母版页,在母版页中做判断对一个系统的权限。暂时没有更好的方法,先这样做。还有就是关于数据库的操作,在查询一条记录是否存在时使用如下的代码
- public static int seleSQL(string sql)
- {
- SqlConnection con = createCon();
- con.Open();
- SqlCommand com = new SqlCommand(sql, con);
- try
- {
- return System.Convert.ToInt32(com.ExecuteScalar());
- con.Close();
- }
- catch (Exception e)
- {
- con.Close();
- return 0;
- }
- }
- com.ExecuteScalar()方法返回的是记录的第一行第一列,通过强制转换成int型,如果不存在这条记录,则返回值0;
- if (dataOperate.seleSQL(sql) !=0)//有该记录
{
SqlDataReader getrow = dataOperate.getRow(sql);//调用dataOperate.getRow()方法
getrow.Read(); - }