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越来越大不知上面可以如何改过

解决方案 »

  1.   

    cpp2017(慕白兄) ( ) 信誉:100    Blog  2007-03-26 11:13:17  得分: 0  
     
     
       id 大这个不是问题。毕竟权限定义不会天天做。另。也可加个字段表示状态。
    去掉选择的时候,更改状态就可。
    添加的时候检查是否存在,不存在就加一条,存在就更改状态。
    不过这样反而麻烦。  
     
    ---------------------------------------------------------------
    up
      

  2.   

    userPopedom
    id userid popedomid
    1  107    3
    2  107    2
    3  107    4
    这个改成
    userPopedom
    userid popedomid
    107    3
    107    2
    107    4
    这样好像还更科学点
      

  3.   

    userid popedomid
    107    3
    107    2
    107    4
    这样好像还更科学点
    ================
    这样就变成联合主键,操作的时候条件要写两个字段。
    其他的没什么。
    如 where userid = 107 and popedomid=3
      

  4.   

    这样就变成联合主键,操作的时候条件要写两个字段。
    其他的没什么。
    如 where userid = 107 and popedomid=3
    ===============
    更新我这样可以吗
    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)
       }
    }