使用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
将包含带空格的名称和姓氏。
有人可以帮助我吗?
由于
答案 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页面,了解如何使用数据绑定获取详细信息。