读书人

Listlt;gt;数据存贮的有关问题

发布时间: 2012-03-18 13:55:39 作者: rapoo

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 ";

读书人网 >C#

热点推荐