日期:2014-05-19  浏览次数:20433 次

|M| 第二贴:当遇上这样的对数据库记录进行更新的时候大家是怎么做的(上一贴写得不清楚)
http://community.csdn.net/Expert/topic/5418/5418963.xml?temp=.9980127

是这样的
我有一个权限表
popedom(记录所有权限)
id     popedom
1       添加
2       删除
3       修改
4       查看
...   ...
然后有一个用户权限表
userPopedom
id   userid   popedomid
1     107         3
2     107         2
3     107         4
..   ..         ..
---------------------------
像上面的表结构,然后在我的userpopdomedit.aspx页面中修改用户权限
先把popdom绑定到DataGrid然后最加加多一个checkbox记录是否有效
然后对checkbox进行更改
最后点击更新,更新权限
-------------------
更新权限我的代码是这样写的

delete   from   userPopedom     where   userid=107
for(i=0;i <=dg.rows.count-1;i++)
{
      if(checkbox.checked)
      {
              insert   into   userpopedom   (userid,popedomid)   values   (107,pid)
      }
}
像上面的这样的写法可以正常更新数据库
但是有一个问题就是每一次都删除原来的
再添加新的时候会让自增长的ID越来越大

不知上面可以如何改过

------解决方案--------------------
id 大这个不是问题。毕竟权限定义不会天天做。 另。也可加个字段表示状态。 去掉选择的时候,更改状态就可。 添加的时候检查是否存在,不存在就加一条,存在就更改状态。 不过这样反而麻烦。
------解决方案--------------------
不要自增长ID那个字段,在你上面的描述中,这个字段完全是多余的
------解决方案--------------------
cpp2017(慕白兄) ( ) 信誉:100 Blog 2007-03-26 11:13:17 得分: 0


id 大这个不是问题。毕竟权限定义不会天天做。

另。也可加个字段表示状态。
去掉选择的时候,更改状态就可。
添加的时候检查是否存在,不存在就加一条,存在就更改状态。
不过这样反而麻烦。



---------------------------
up