【问题标题】:Clearing data grid view after each selection of comboBox to retrive new data每次选择组合框后清除数据网格视图以检索新数据
【发布时间】:2017-01-18 11:34:32
【问题描述】:

我的员工视图表单中有三个类别,它们是:
1- 所有员工
2- 经理
3- 员工
每次我选择其中一个项目时,这三个类别都设置为组合框中的项目,它应该显示有关所选项目的数据......问题是数据网格视图不会清除其第一个数据以检索新的数据 我在构造函数中的代码用于显示所有员工

 da = new SqlDataAdapter("select empId as ID,empName ,empAdd,empBdate,empPhone1,empPhone2,empEmail,empSSN,empQualf from emp", cn);
            da.Fill(dt);
            empViewdgv.DataSource=dt;  

以及其他用于在选择组合框项时检索员工数据的代码

 private void empViewcmbo_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (empViewcmbo.SelectedIndex == 0)
            {
                empViewdgv.DataSource = null;
                empViewdgv.Rows.Clear();
                da = new SqlDataAdapter("select empId as ID,empName ,empAdd,empBdate,empPhone1,empPhone2,empEmail,empSSN,empQualf from emp", cn);
                da.Fill(dt);
                empViewdgv.DataSource = dt;
            }
            else if (empViewcmbo.SelectedIndex == 1)
            {
                empViewdgv.DataSource = null;
                empViewdgv.Rows.Clear();
                da = new SqlDataAdapter("select empId as ID,empName ,empAdd,empBdate,empPhone1,empPhone2,empEmail,empSSN,empQualf from emp where empPerm='Manager'", cn);
                da.Fill(dt);
                empViewdgv.DataSource = dt;

            }
            else if (empViewcmbo.SelectedIndex == 2)
            {
                empViewdgv.DataSource = null;
                empViewdgv.Rows.Clear();
                da = new SqlDataAdapter("select empId as ID,empName ,empAdd,empBdate,empPhone1,empPhone2,empEmail,empSSN,empQualf from emp where empPerm='Employee'", cn);
                da.Fill(dt);
                empViewdgv.DataSource = dt;
            }
        }  

当我选择所有员工时,它应该显示所有员工,但如果我选择经理,它应该先清空 datagridview 中的数据,然后显示经理的数据,依此类推...

【问题讨论】:

  • 你在哪里初始化dt变量?
  • @arman1991 我在构造函数之前声明并初始化了它
  • 不清楚dtcn变量代表什么?请编辑您的问题并向我们展示整个解决方案。谢谢。

标签: c# sql-server winforms combobox


【解决方案1】:

在填充数据表之前调用 Clear() 方法

da = new SqlDataAdapter("select empId as ID,......", cn);
            dt.Clear();
            da.Fill(dt);
            empViewdgv.DataSource=dt;

【讨论】:

  • 这符合我的想法,非常感谢你解决了我的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
相关资源
最近更新 更多