永发信息网

C# comboBox 绑定数据源 删除重复内容 distinct无效

答案:5  悬赏:30  手机版
解决时间 2021-05-06 07:38
  • 提问者网友:战魂
  • 2021-05-05 12:26
C# comboBox 绑定数据源 删除重复内容 30 [ 标签:c# combobox,c#,combobox ]

代码如下

    private void Form2_Load(object sender, EventArgs e)
        {
           string connString = "server=.;database=MyProject;uid=sa;pwd=";
           SqlConnection conn = new SqlConnection(connString);
            string sql = "select * from 学生基本信息";
            DataSet ds = new DataSet();
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
            adapter.Fill(ds, "学生基本信息");
            comboBox2.DataSource = ds.Tables["学生基本信息"];
            comboBox3.DataSource = ds.Tables["学生基本信息"];
            comboBox4.DataSource = ds.Tables["学生基本信息"];
            comboBox5.DataSource = ds.Tables["学生基本信息"];
            comboBox6.DataSource = ds.Tables["学生基本信息"];
            comboBox7.DataSource = ds.Tables["学生基本信息"];
            comboBox8.DataSource = ds.Tables["学生基本信息"];
            comboBox2.DisplayMember = "籍贯";
            comboBox3.DisplayMember = "院系";
            comboBox4.DisplayMember = "专业";
            comboBox5.DisplayMember = "年级";
            comboBox6.DisplayMember = "班级";
            comboBox7.DisplayMember = "学制";
            comboBox8.DisplayMember = "民族";
        }

显示到是显示出来了。但是comboBox 里有很多重复数据。我想问下怎么清除重复数据。显示一个就可以了

 

用distinct没有效果 因为这些数据都在一个表上

最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-05-05 13:16

一般操作数据库的时候是不建议将控件直接绑定到数据源的,这样会降低程序的可控性。建议楼主用代码实现,毕竟你的数据量不大。以下在你写的代码的基础上延续:


    string connString = "server=.;database=MyProject;uid=sa;pwd=";
    SqlConnection conn = new SqlConnection(connString);
    string sql = "select * from 学生基本信息";
    DataSet ds = new DataSet();
    SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
    adapter.Fill(ds, "学生基本信息");
    System.Data.DataTable table1=ds.Tables["学生基本信息"];
    for(int i=0;i<table1.Rows.Count;i++)


    {


    bool exist=false;


    for(int j=0;j<comboBox2.Items.Count;j++)


    {


    if(comboBox2.Items[j]==table1.Rows[i]["籍贯"].ToString().Trim())


    {


    exist=true;


    break;


    }


    }


    if(!exist)


    {


    comboBox2.Items.Add(table1.Rows[i]["籍贯"].ToString().Trim());


    }


    exist=false;


    for(int j=0;j<comboBox3.Items.Count;j++)


    {


    if(comboBox3.Items[j]==table1.Rows[i]["院系"].ToString().Trim())


    {


    exist=true;


    break;


    }


    }


    if(!exist)


    {


    comboBox3.Items.Add(table1.Rows[i]["院系"].ToString().Trim());


    }


    }


其他可以自己一次添加,至于怎么才能实现改变combox的内容,让表格显示的内容跟着改变,,还是要用代码在combox的selectedIndexChanged事件里面写的。

全部回答
  • 1楼网友:第四晚心情
  • 2021-05-05 16:40
select distinct 籍贯 from 学生基本信息! 这样一列一列的查,再去掉重复项,再添加到combox列表下去!
  • 2楼网友:洎扰庸人
  • 2021-05-05 15:42
select一列,再group by就ok了。
  • 3楼网友:迟山
  • 2021-05-05 15:07
你就不要查询全部啊,如果你能保证你的内容都是唯一的,你那不妨试一下Groud by ‘要分组的名称’
  • 4楼网友:天凉才是好个秋
  • 2021-05-05 13:37

哪个字段要筛选重复项呢

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯