private void btn_select_Click(object sender, EventArgs e)
        {
            if (dataGridView.DataSource != null)
            {
                dataGridView.DataSource = null; 
            }            if (cmb_selectType.Text == "系别")
            {
                if (cbx_allInfomation.Checked == true)
                {
                    dataGridView.DataSource = BussinessFacade.Customers.cus.GetTable("Tbl_Department");
                    dataGridView.Columns[1].HeaderText = "系别ID";
                    dataGridView.Columns[2].HeaderText = "系别名称";
                }
            }
            else
            {
                dataGridView.AutoGenerateColumns = false;
              
                DataGridViewTextBoxColumn txt_ID = new DataGridViewTextBoxColumn();
                txt_ID.HeaderText = "班级ID";
                txt_ID.DataPropertyName = "Class_ID";                DataGridViewComboBoxColumn cmb_Department = new DataGridViewComboBoxColumn();
                cmb_Department.HeaderText = "所属系别";
                cmb_Department.DataSource = BussinessFacade.Customers.cus.GetTable("Tbl_Department");
                cmb_Department.DataPropertyName = "Dpm_ID";
                cmb_Department.DisplayMember = "Dpm_Name";
                cmb_Department.ValueMember = "Dpm_ID";                DataGridViewTextBoxColumn txt_Name = new DataGridViewTextBoxColumn();
                txt_Name.HeaderText = "班级名称";
                txt_Name.DataPropertyName = "Class_Name";                DataGridViewTextBoxColumn txt_Member = new DataGridViewTextBoxColumn();
                txt_Member.HeaderText = "班级人数";
                txt_Member.DataPropertyName = "Class_Member";                dataGridView.Columns.Add(txt_ID);
                dataGridView.Columns.Add(cmb_Department);
                dataGridView.Columns.Add(txt_Name);
                dataGridView.Columns.Add(txt_Member);
                
                if (cbx_allInfomation.Checked == true)
                {
                    dataGridView.DataSource = BussinessFacade.Customers.cus.GetTable("Tbl_Class");
                }
            }
        }
如上代码 我每次单击BUTTON 如果datagridview数据源不为NULL 都付值为NULL
可是datagridview的数据任然存在 例如 我第一次单击datagridview显示了8列 我第二次的单击时他又帮我在原来的
基础上加上了8列 变成16列 。
有什么办法可以取去除上一次的数据列?

解决方案 »

  1.   

    dataGridView.AutoGenerateColumns = false;
    放在最前面看看
      

  2.   

    dataGridView.Columns.Add只需运行一次,你点一次dataGridView.Columns.Add就加了一次你可以判断dataGridView.Columns.Count再加
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  3.   

    建议数据不要直接绑定dataGridView.DataSource 使用:bindingSource.DataSource=数据源dataGridView.DataSource =bindingSource每次加载数据前 bindingSource.Clear();
      

  4.   

    建议数据不要直接绑定dataGridView.DataSource 使用:bindingSource.DataSource=数据源 dataGridView.DataSource =bindingSource 每次加载数据前 bindingSource.Clear();
      

  5.   

    楼上的正解,
    也就是说,你每点击一次按钮:                dataGridView.Columns.Add(txt_ID); 
                    dataGridView.Columns.Add(cmb_Department); 
                    dataGridView.Columns.Add(txt_Name); 
                    dataGridView.Columns.Add(txt_Member); 
    就执行一次,应该加个判断,只在第一次时添加,活着按楼上说的你可以判断dataGridView.Columns.Count再加 
      

  6.   


    那有清除 DataGridViewTextBoxColumn 的方法吗?