C#comboBox,绑定完,去除重复数据

我已经绑定完了,所以不用说什么在SQL语句里用distinct这种方法,我只要在comboBox中去除重复数据的方法,好用采纳加分... 我已经绑定完了,所以不用说什么在SQL语句里用distinct 这种方法,我只要在comboBox中去除重复数据的方法,好用采纳加分 展开
 我来答
dugangwywttt
2018-01-07
知道答主
回答量:1
采纳率:0%
帮助的人:907
展开全部
        private void button2_Click(object sender, EventArgs e)
        {
            int I=0, J=1,COUNT,A;
            String I0, I1;
            COUNT = comboBox1.Items.Count;
            for (I = 0; I < COUNT-1; I++) 
            {
                COUNT = comboBox1.Items.Count;
                I0 = comboBox1.Items[I].ToString();
                listBox1.Items.Add(I.ToString() + "I0" + I0);
           
                    A = I + 1;

                for (J=A;J<COUNT;J++)
                {

                    I1 = comboBox1.Items[J].ToString();
                    listBox1.Items.Add(J.ToString()+"I1" + I1);
                    if (I0 == I1)
                    {
                        comboBox1.Items.RemoveAt(J);
                        listBox1.Items.Add("删除" + I1+"第"+J.ToString());
                        J = J - 1; 
                    }
                    COUNT = comboBox1.Items.Count;
                } 
            }
        }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hey112233
2014-05-26 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:129
采纳率:100%
帮助的人:100万
展开全部
遍历comboxbox的所有值,用comboBox.Items.RemoveAt(int index);进行移除。关键在于如何进行判断。建议从后向前进行移除。
更多追问追答
追问
求具体代码,秒采纳
追答
DataTable dt = new DataTable();
dt.Columns.Add("id", System.Type.GetType("System.String"));
dt.Columns.Add("name", System.Type.GetType("System.String"));
for (int t = 0; t < comboBox1.Items.Count; t++)
{
    DataRow row = dt.NewRow();
    row["id"] = ((System.Data.DataRowView)(comboBox1.Items[t])).Row.ItemArray[0].ToString();
    row["name"] = ((System.Data.DataRowView)(comboBox1.Items[t])).Row.ItemArray[1].ToString();
    dt.Rows.Add(row);
}
if (dt.Rows.Count > 1)
{
    for (int i = dt.Rows.Count - 1; i >= 0; i--)
    {
        for (int s = i - 1; s >= 0; s--)
        {
            if (dt.Rows[i]["name"].ToString() == dt.Rows[s]["name"].ToString())
            {
                dt.Rows.RemoveAt(i);
                break;
            }
        }
    }
}
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "name";
comboBox1.ValueMember = "id";

 经过测试,使用DataSource绑定的combobox是没法被直接移除项的,先将所有的值传给DataTable,处理后重新进行绑定。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-05-26
展开全部
    void RemoveRepeatItem(ComboBox cbb)
        {
            List<string> list = new List<string>();
            foreach(string s in cbb.Items)
            {
                if (!list.Contains(s))
                {
                    list.Add(s);
                }
            }
            cbb.Items.Clear();
            foreach(string s in list)
            {
                cbb.Items.Add(s);
            }
        }
追问

报错

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式