2011-09-14 6 views
13

コンボボックスをSQLデータベース(IDと名前列の学生テーブル)からどのように埋めることができますか?表示テキストは学生の名前を表し、コンボボックスの項目の値はその学生のIDです。コンボボックスの値私はIDの値を取得しますC#windowsフォームをコンボボックスに挿入する方法は?

+1

(http://stackoverflow.com/questions/2417960/populating-a-combobox-using-c-sharp)[C#を使用してコンボボックスを移入]の可能な重複 –

答えて

3

まず、あなたはどのようにDBからデータを取得するつもりかを理解する必要がありますが、私はそれを知っているか、別の質問をする予定ですそれに関してはそこから、いくつかのコレクションをComboBoxにバインドすることをお勧めします。 Hereは、DataSetでそれを行う例です。また、List<T>または他のIEnumerable<T>にバインドすることもできます.LINQを使用してデータを取得する場合は、さらに意味があります。 Hereは、ここにある質問です。ListComboBoxにバインドしている可能性があります。データを取得する方法を教えてください。

26

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

ComboBox.DataSource Property

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

ComboBox.DisplayMember Property

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

ComboBox.ValueMember Property

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

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

How to: Add and Remove Items from a Windows Forms ComboBox

ComboBox.Items Property

+1

で上記の例では、Itemクラスのプロパティ "Name"と "Id"に "{get; set;}"を追加する必要があります。そうしないと、コンボボックスにはオブジェクトタイプのみが表示されます。 – wavedrop

関連する問題