web-dev-qa-db-ja.com

C#のWindowsフォームのコンボボックスを作成する方法

SQLデータベースからコンボボックスにデータを入力するにはどうすればよいですか(idが指定されたstudentテーブル、およびname列)、表示テキストは学生の名前を表し、comboboxのアイテムの値はその学生のIDであり、コンボボックス私はID値を取得します

14
Amer

以下は重要なプロパティです。

ComboBox.DataSourceプロパティ

データソースは、データベース、Webサービス、またはデータバインドされたコントロールを生成するために後で使用できるオブジェクトにすることができます。 DataSourceプロパティが設定されている場合、アイテムコレクションは変更できません。

ComboBox.DisplayMemberプロパティ

DataSourceプロパティで指定されたコレクションに含まれるオブジェクトプロパティの名前を指定する文字列。デフォルトは空の文字列( "")です。

ComboBox.ValueMemberプロパティ

DataSourceプロパティで指定されたコレクションに含まれているオブジェクトプロパティの名前を表す文字列。デフォルトは空の文字列( "")です。

DataTable dataTable = GetDataTable("Select * from Student"); // You have to implement the ways to retrieve data from the database.
comboBox1.Datasource = dataTable;
comboBox1.DisplayMember = StudentName; // Column Name
comboBox1.ValueMember = StuentId;  // Column Name

プログラムでアイテムを追加する場合の1つの方法を次に示します。

private class Item 
{
      public string _Name;
      public int _Id

      public Item(string name, int id) 
      {
          _Name = name; 
          _Id = id;
      }

      public string Name
      {
          get { return _Name; }
          set { _Name = value; }
      }

      public string Id
      {
          get { return _Id; }
          set { _Id = value; }
      }
}   

comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Id";

comboBox1.Items.Add(new Item("Student 1", 1));
comboBox1.Items.Add(new Item("Student 2", 2));
comboBox1.Items.Add(new Item("Student 3", 3));

これにはさまざまな方法があります。

方法:Windowsフォームコンボボックスのアイテムを追加および削除する

ComboBox.Itemsプロパティ

26
CharithJ

まず、DBからデータを取得する方法を理解する必要がありますが、それを知っているか、それについて別の質問をするつもりだと思います。そこから、あなたの最善の策は、いくつかのコレクションをComboBoxにバインドすることです。 ここDataSetを使用した例です。 List<T>や他のIEnumerable<T>にバインドすることもできます。これは、LINQを使用してデータを取得する場合に適しています。 ここ は、ここでの質問ですSO ListComboBoxにバインドすることについて_より詳細な答えを提供できるように、データで

3
Zannjaminderson