zoukankan      html  css  js  c++  java
  • winform下comboBox控件绑定数据并设置其value【整理】

    最近在做comboBox绑定数据库数据时遇到一个问题,就是绑定之后怎样获取其value

    开始是这样做的:

    /// <summary>
    /// 加载用户列表到comboBox
    /// </summary>
    private void GetUserList()
    {
        
    //调用连接数据库函数
        OpenConn();
        SqlCommand cmd 
    = conn.CreateCommand();
        cmd.CommandText 
    = "select * from Users";
        SqlDataReader sdr 
    = cmd.ExecuteReader();
        
        
    while(sdr.Read())
        {
            
    //索引1是用户名
            comboBox1.Items.Add(sdr.GetValue(1));
        }
        sdr.Close();
    }


    这样可以得到用户列表,但是comboBox的SelectValue却都是null,所以如果不能进行SelectedIndexChanged事件的操作(虽然可以用comboBox的SelectIndex等其他属性,但是还是没有SelectValue方便)。
    后来在网上找到一种方法,利用ArrayList存放数据库的数据并将ArrayList作为数据源绑定到comboBox,如下:

    /// <summary>
    /// 加载用户列表到comboBox
    /// </summary>
    private void GetUserList()
    {
        
    //调用连接数据库函数
        OpenConn();
        SqlCommand cmd 
    = conn.CreateCommand();
        cmd.CommandText 
    = "select * from Users";
        SqlDataReader sdr 
    = cmd.ExecuteReader();

        ArrayList al 
    = new ArrayList();
        
        
    while (sdr.Read())
        {
            //索引0为用户在数据库中的ID,该值到时作为comboBox的value,这样就可以使用comboBox的SelectValue了         al.Add(
    new DictionaryEntry(sdr.GetValue(0), sdr.GetValue(1)));
        }
        sdr.Close();

        
    this.comboBox1.DisplayMember = "Value";
        
    this.comboBox1.ValueMember = "Key";
        
    //注意:下面这句要放到最后面
        
    //因为执行到下面这句后会调用SelectedIndexChanged事件(不知道为什么,谁能解释一下吗?)
        
    //这时如果没有判断SelectVlaue是否为空可能会出错
        this.comboBox1.DataSource = al;
    }
  • 相关阅读:
    P2048 [NOI2010]超级钢琴 (rmq +堆+贪心)
    题解 P4799 【[CEOI2015 Day2]世界冰球锦标赛】
    洛谷 P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维)
    洛谷 P4880 抓住czx
    洛谷 P2471 [SCOI2007]降雨量
    洛谷 P4688 [Ynoi2016]掉进兔子洞 (看到题目背景,galgame玩家狂喜)
    洛谷 P2101 命运石之门的选择 (分治)
    留言版
    【游记】OI 2020(在更)
    类欧几里得算法
  • 原文地址:https://www.cnblogs.com/linyc/p/1505836.html
Copyright © 2011-2022 走看看