现在我的情况是这样的:
    在DATAGRID各列里边放上了一个CheckBoxList控件,当页面载入的时候根据数据库的存储选定CheckBoxList的值。
    问题在这里:我想做更新操作,比如我重新选择了,然后把他们存入数据库(怎么把以前存的现在又没选的删除掉呢?)

解决方案 »

  1.   

    没使用过SqlDataAdapter来更新数据,能说下我这例子的操作过程吗?
      

  2.   

    这个要多步进行操作
    1.收集现有的被选中的复选框,获取它们所对应的ID,并组成文本串,比如:
    id = "1,2,3,6,7";
    2.删除所有不在此次选择的项
    sql = "delete table where id not in(" + id + ") ";
    3.循环每个记录,判断该记录是否已经存在数据库中,如果存在,则进行修改,反之,则执行插入记录操作.
      

  3.   

    checkboxlist 里不是有两个 属性哈 VALUE 和TEXT  把数据库的记录的ID 帮定给VALUE
      

  4.   

    我晕 上面的还没写完  点错了 不好意思哈
     
    接上面的:
    把 ID 对应的值帮定给TEXT 这样在最后获取的时候 就可以得到数据库里记录的ID 让后DELETE 就好了。
    id     aa     bb  
    1      a       b
    2      dd     dd 
       CheckBoxList1.DataTextField="aa";
                CheckBoxList1.DataValueField="id"
      

  5.   

    我以前是这样实现类似‘筛选’功能的。
    1、定义一个ArrayList1,存入初始选中的行的DataKey;
    2、定义ArrayList2,存入提交update时所有选中行的DataKey;
    3、比较2个集合,删除公有部分(公有部分即为不需要update的行);
    4、合并集合;
    5、update指定的行
    -----------集合操作代码------------
    for (int i = ArrayList1.Count - 1; i >= 0; i--)//遍历时也许要删除集合数据,所以必须反向操作 
    {
        object obj = ArrayList1[i];
        if(ArrayList2.Contains(obj))
        {
            ArrayList2.Remove(obj);
            ArrayList1.RemoveAt(i);
        }
    }foreach (object obj in ArrayList1)
    {
        ArrayList2.Add(obj);
    }
    -------ArrayList2即为最终所需-----==== 
    ~~~~ 我的Blog:http://blog.csdn.net/quou2002