0

クエリを使用SELECTして、データベースからデータを取得します (ユーザーなど)。すべてのデータをList<User>.

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

このデータをリストボックスにロードするには、次のようにします。

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

私がやりたいことは次のことです:

誰かがリスト項目の 1 つ (ユーザーの 1 つ) をクリックすると、私の C# フォーム アプリケーションは、選択したユーザーから (データベースから) ユーザー ID を取得する必要があります。

string name = listbox.SelectedItem.ToString();

私はできません:

SELECT UserID FROM Person WHERE Username = name;

SelectedItemにはスペースを含む名前と姓が含まれるためです。

誰かが私を助けることができますか?

ありがとう

4

2 に答える 2

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")})
}

リストの入力を送信し、データ、プロパティを DisplayName プロパティに、プロパティを UserID プロパティDataSourceにバインドするために使用します。DisplayMemberValueMember

詳細については、データバインディングの使用方法の例については、このページを参照してください。

于 2013-06-15T18:44:27.253 に答える