简单datagridview清除问题 得分好贴!

gibby 2009-01-15 09:06:54
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列 。。。。
有什么办法可以取去除上一次的数据列?
...全文
250 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyun0112 2009-01-15
  • 打赏
  • 举报
回复
dataGridView.Columns。Clear()
gibby 2009-01-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 feiyun0112 的回复:]
dataGridView.Columns.Add只需运行一次,你点一次dataGridView.Columns.Add就加了一次

你可以判断dataGridView.Columns.Count再加

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
[/Quote]

那有清除 DataGridViewTextBoxColumn 的方法吗?
jacklee_008 2009-01-15
  • 打赏
  • 举报
回复
楼上的正解,
也就是说,你每点击一次按钮: dataGridView.Columns.Add(txt_ID);
dataGridView.Columns.Add(cmb_Department);
dataGridView.Columns.Add(txt_Name);
dataGridView.Columns.Add(txt_Member);
就执行一次,应该加个判断,只在第一次时添加,活着按楼上说的你可以判断dataGridView.Columns.Count再加
优途科技 2009-01-15
  • 打赏
  • 举报
回复
建议数据不要直接绑定dataGridView.DataSource

使用:bindingSource.DataSource=数据源

dataGridView.DataSource =bindingSource

每次加载数据前 bindingSource.Clear();
david_anwei 2009-01-15
  • 打赏
  • 举报
回复
建议数据不要直接绑定dataGridView.DataSource

使用:bindingSource.DataSource=数据源

dataGridView.DataSource =bindingSource

每次加载数据前 bindingSource.Clear();
skeljy 2009-01-15
  • 打赏
  • 举报
回复
mark
feiyun0112 2009-01-15
  • 打赏
  • 举报
回复
dataGridView.Columns.Add只需运行一次,你点一次dataGridView.Columns.Add就加了一次

你可以判断dataGridView.Columns.Count再加

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
xfreyes 2009-01-15
  • 打赏
  • 举报
回复
dataGridView.AutoGenerateColumns = false;
放在最前面看看

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧