2016-04-26 16 views
0

ComboBoxオブジェクトとその項目に読み込まれるクエリを取得するメソッドがあります。ValueMemberプロパティを使用して、コンボボックス内の項目をプログラムで選択します。

方法はまた、2つの他の項目を要求:

1. DBテーブルの列名とそのDBテーブルの列で、各レコードのComboboxDisplayMember

2. IDにそれを設定します私は2列、IDと対応する名前でクエリを作成することによって、メソッドを使用し

public void DatabaseColumnRecordsToCombobox(ComboBox cbx, String query, String displayMember, String valueMember) 
{ 
    try 
    { 
     cmd = new MySqlCommand(query, connection); 
     da = new MySqlDataAdapter(cmd); 
     tbl = new DataTable(); 
     da.Fill(tbl); 
     cbx.DataSource = tbl; 
     cbx.DisplayMember = displayMember; 
     cbx.ValueMember = valueMember; 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
     this.CloseConnection(); 
    } 
} 

ComboboxValueMemberプロパティにそれを名前と設定します。そしてComboBoxDisplayMemberValueMemberに格納:

DatabaseColumnRecordsToCombobox(cmbSupplier, "SELECT Id, Supplier_Name FROM Supplier WHERE Enable_Flag=1 ORDER BY Supplier_Name", "Supplier_Name", "Id"); 

私はちょうどあなたのすべては私のプログラムは、私の問題を伝える前に、どのように機能するかを理解したい、長い導入について謝罪します。問題は、ComboBoxValueMemberプロパティを使用して、デフォルトアイテムのDataGridViewを選択する方法です。

プログラムで項目を選択するのはcmbCategory.SelectedItem = "Supplier A"ですが、私が必要とするのはValueMemberです。このようにしてIdでデフォルト項目を設定できます。

答えて

1

だけではなく、SelectedValueのを使用します。

comboBox1.SelectedValue = "2"; 

ちょうど私が何を意味するか示すために非常に簡単な例を:

 DataTable dt = new DataTable(); 
     dt.Clear(); 
     dt.Columns.Add("Id"); 
     dt.Columns.Add("Supplier_Name"); 
     DataRow r = dt.NewRow(); 
     r["Id"] = "1"; 
     r["Supplier_Name"] = "Supplier A"; 
     dt.Rows.Add(r); 
     r = dt.NewRow(); 
     r["Id"] = "2"; 
     r["Supplier_Name"] = "Supplier B"; 
     dt.Rows.Add(r); 
     r = dt.NewRow(); 
     r["Id"] = "3"; 
     r["Supplier_Name"] = "Supplier C"; 
     dt.Rows.Add(r); 

     comboBox1.DataSource = dt; 
     comboBox1.DisplayMember = "Supplier_Name"; 
     comboBox1.ValueMember = "Id"; 

     //This will set the ComboBox to "Supplier B" 
     comboBox1.SelectedValue = "2"; 
+0

それは働きました!どうもありがとうございました!しかし、単にcombobox1.SelectedValueの整数を使用するのがいいかどうかを知りたいですか?例えば'comboBox1.SelectedValue = 1'です。私は整数を使用していましたが、それはまだ機能しました、なぜこれが大丈夫になったのか分かりません。ところで、私はあなたの人が大好き! #nohomo –

+1

ハハ問題ない男!整数は、そのオブジェクト型からも同様に機能するはずです。 ValueMemberにある型と同じ型を使用できるはずです。 – MrApnea

関連する問題