永发信息网

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

答案:5  悬赏:30  手机版
解决时间 2021-05-06 07:38
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没有效果 因为这些数据都在一个表上

最佳答案

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


    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事件里面写的。

全部回答
select distinct 籍贯 from 学生基本信息! 这样一列一列的查,再去掉重复项,再添加到combox列表下去!
select一列,再group by就ok了。
你就不要查询全部啊,如果你能保证你的内容都是唯一的,你那不妨试一下Groud by ‘要分组的名称’

哪个字段要筛选重复项呢

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
神起演唱会取消了
恋爱中该选择喜欢你哒人还是你喜欢的人?
谁有谎言BigBang的歌词啊!
恒源玉坊工作室地址在哪,我要去那里办事
奥比岛现在怎么得到静化珠?
赛尔号哈默雷特在哪?
更换网名
包公为什么脸是黑的。
为什么拳皇DIY版可选200人玩着玩着玩不起了
谁知道QQ三国里面的逃犯9543在哪里?
各位,帮帮忙啊!
基于rs-232单片机之间通信
我们之间似乎超出友谊、但感觉又到不了爱情、
有谁能介绍个好玩可爱点的Q版网游呢?
现在除了魔兽世界还有什么好玩的网游 要3D 的
推荐资讯
如何调整自己的思维?
我的农场里的金币会莫明其妙的减少几万为什么
萍乡农商银行排上支行怎么去啊,有知道地址的
班级要开圣诞party,活动方案要怎么写啊?
QQ三国50万声望的武器能融几个魂
怎么样才能加入QQ校友班级。我已开通校友图标
QQ三国YY闯副本有什么技能好?
QQ上能不能不显示这个谁谁的问问
显 卡:-GeForec FXx 660000等于多少兆的显卡
中国汽车企业有那些是国企、那些是民营、那些
谁有谭维维的新歌《遇见》
声母韵母复韵母怎么读,韵母表怎么读
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?