首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

List<>数据存贮的有关问题

2012-03-18 
List数据存贮的问题。UserGroup.cs中有一方法:publicList UserInfoGetAllUserList(){DataSetdsGetUserL

List<>数据存贮的问题。
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的。而且是张三,李四等
请问怎么解决?

[解决办法]
先指出一个错误,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;
}
[解决办法]
lstUserList.DisplayMember = "Name ";

热点排行