数据源是DataTable,如果我想通过checkbox选择DataTable的列名来重新构造一个DataTable,应该怎么写呢?
比如DataTable dt1:学号    姓名      年龄       性别     成绩
1        a         20         男        90
2        b         21         男        85
3        c         20         女        86
checkbox cb1:选择 学号 姓名  性别 (这里选择是根据checkbox,而不是指定好的列名)则DataTable dt2:学号    姓名   性别
1        a      男
2        b      男
3        c      女
请不吝赐教,谢谢!

解决方案 »

  1.   

    DataTable _Table1 = new DataTable();            DataTable _Table2 = _Table1.Copy();  //复制一个Table             _Table2.Columns.Remove("删除一不要的行");
      

  2.   


    谢谢!但是我现在的问题就是如何获取checkbox的选择结果来删除列
      

  3.   

     _Table2.Columns.Remove("删除一不要的列");
    你打错了一个字, 呵呵.
      

  4.   

    if(this.checkBox1.Checked)
    {
      //选中状态
    }
    else
    {
      //未选中状态
    }
      

  5.   

    checkbox里放的有 列名把循环所有的checkBox ... 然后用_Table2.Columns.Remove("列名");  不就好了
      

  6.   

    可以使用dataview的totable方法。将选中的列名作为一个数组参数。datatable dt = dv.ToTalbe("新表名",true,需要显示的列名数组 );
      

  7.   


    checkbox是放的从dt1取出来的所有列名,“循环所有的checkBox ...然后用_Table2.Columns.Remove("列名");  ” 可以告诉我代码吗?我就是写不出来,呵呵
      

  8.   

    x
    谢谢,请问如何得到选中的列名呢?
    foreach()
      

  9.   


    用的是DataGridview把checkboxcolumns和从dt1取出的列名放在一起的
      

  10.   

    在checkbox的选中状态改变事件里判断,如果该checkbox的状态由选中变成未选中,则隐藏相应的列;反之则显示相应的列。