UserGroup.cs 中有一方法:
        public List<UserInfo> GetAllUserList()
        {
            DataSet dsGetUserList;
            dsGetUserList = UserDBAgent.GetAllUserList();
            int rowCount = dsGetUserList.Tables[0].Rows.Count;
            if (rowCount > 0)
            {
                UserInfo ui = new UserInfo();
                List<UserInfo> userList = new List<UserInfo>();
                for (int i = 0; i < rowCount; i++)
                {
                    ui.UserID = dsGetUserList.Tables[0].Rows[i]["UserID"].ToString();
                    ui.Name = dsGetUserList.Tables[0].Rows[i]["UserName"].ToString();
                    ui.GroupID = int.Parse(dsGetUserList.Tables[0].Rows[i]["GroupID"].ToString());
                    ui.State = int.Parse(dsGetUserList.Tables[0].Rows[i]["State"].ToString());
                    userList.Add(ui);
                }                return userList;
            }            else if (rowCount <= 0)
            {
                ugErrormsg = "当前没有用户!";
                return null;
            }            else
            {
                ugErrormsg = UserDBAgent.ErrorMsg;
                return null;
            }
        }winfrom 中绑定到Listbox中
UserGroup ug = new UserGroup();
lstUserList.DataSource = ug.GetAllUserList();
lstUserList.DisplayMember = "UserName";
lstUserList.ValueMember ="UserID";
显示了
1002
1002
1002(其中1002时数据库中UserID)我想让它显示UserName的。而且是张三,李四等
请问怎么解决?

解决方案 »

  1.   

    先指出一个错误,UserInfo ui = new UserInfo();这句应该加到for循环中去,否则就显示同一个用户的值了。
                if (rowCount > 0)
                {
                    List<UserInfo> userList = new List<UserInfo>();
                    for (int i = 0; i < rowCount; i++)
                    {
                        UserInfo ui = new UserInfo();
                        ui.UserID = dsGetUserList.Tables[0].Rows[i]["UserID"].ToString();
                        ui.Name = dsGetUserList.Tables[0].Rows[i]["UserName"].ToString();
                        ui.GroupID = int.Parse(dsGetUserList.Tables[0].Rows[i]["GroupID"].ToString());
                        ui.State = int.Parse(dsGetUserList.Tables[0].Rows[i]["State"].ToString());
                        userList.Add(ui);
                    }                return userList;
                }
      

  2.   

    lstUserList.DisplayMember = "Name";
      

  3.   


    lstUserList.DisplayMember = "UserName";
    lstUserList.ValueMember ="UserID";lstUserList.DataSource = ug.GetAllUserList();
    换一下位置试试
      

  4.   

    lstUserList.DisplayMember = "Name";
    lstUserList.ValueMember ="UserID";lstUserList.DataSource = ug.GetAllUserList();呵呵,参考楼上的DisplayMember 确实应该是Name
      

  5.   

    上面遇到的问题有两个:
    1.数据只是显示了最后一条记录。(1002)
    2.数据显示的是UserID,而我想要显示的是UserName。
    另外:还有我有两个Listbox1,Listbox2
    1.在我把上面的数据绑定到了Listbox1之后,怎么把Listbox1选定的项添加到Listbox2中。
    2.我要是想把Form1中的Listbox2的所有从Listbox1中添加的项,转到Form2中另外一个ListBox。怎么实现?谢谢。
      

  6.   

    谢谢 Snowdust(雪尘) 
    “先指出一个错误,UserInfo ui = new UserInfo();这句应该加到for循环中去,否则就显示同一个用户的值了。”谢谢 dnnl_cn() 
    lstUserList.DisplayMember = "Name";
    上面遇到的问题有两个:
    1.数据只是显示了最后一条记录。(1002)
    2.数据显示的是UserID,而我想要显示的是UserName。
    两个问题已经解决。
    谢谢大家。
      

  7.   

    另外:还有我有两个Listbox1,Listbox2
    1.在我把上面的数据绑定到了Listbox1之后,怎么把Listbox1选定的项添加到Listbox2中。
    2.我要是想把Form1中的Listbox2的所有从Listbox1中添加的项,转到Form2中另外一个ListBox。怎么实现?谢谢。