从所选项目列表框中获取ID

时间:2013-06-15 18:34:44

标签: c# windows forms

使用SELECT查询,我从数据库中获取一些数据(例如用户)。我将所有数据都放在List<User>

List<User> listUsers = new List<User>();

要在列表框中加载此数据,我会这样做:

Foreach(User u in listUsers)
{
     listbox.Items.Add(u.name + " " + u.lastname)
}

我想做的是下一个:

当有人点击其中一个列表项(在其中一个用户上)时,我的c#表单应用程序需要从所选用户获取用户ID(来自dbs)。

string name = listbox.SelectedItem.ToString();

我做不到:

SELECT UserID FROM Person WHERE Username = name;

因为SelectedItem将包含带空格的名称和姓氏。

有人可以帮助我吗?

由于

2 个答案:

答案 0 :(得分:2)

为什么不在ID课程中引入属性User?您也可以将该属性与其他数据一起填充。然后,您还可以覆盖类用户中的ToString()方法,该方法将帮助您显示名称和姓氏。您可以添加User类的实例而不是字符串,并将选择直接转换到您拥有User的{​​{1}}类。检查代码:

ID

答案 1 :(得分:0)

在填写列表框时,进行查询以获取UserID列以及用户名,用户姓。

创建一个代表列表中每个项目的类,例如

public class UserInfo
{
   public string DisplayName {get; set;}
   public int UserID {get; set;}
}

listUsers设为List<UserInfo>类型。在将表中的数据填充到列表中时,请执行以下操作

while (myUserData.Read())
{
   listUsers.Add(new UserInfo() {DisplayName = myUserData["DisplayName"] , UserID = myUserData["UserID")})
}

发布列表填充,使用DataSource将数据DisplayMember属性绑定到DisplayName属性,将ValueMember属性绑定到UserID属性。

查看this页面,了解如何使用数据绑定获取详细信息。