2017-03-17 12 views
-1

私は選択されたインデックスが機能しない理由を理解できないようです。最初の項目から最後の項目までComboBoxのインデックスを移動させる必要があります。ポイントは、私はコンボボックスここ変数を使用してComboBoxアイテムを選択する方法は?

内の項目のすべてに「)loadtrainer2(」この関数を実行する必要があることは私のコードです:

While READER.Read 
    Dim count as integer 

    id = READER.GetInt32("emp_id") 
    count = count + 1 

    ComboBox1.Items.Add(id) 
    ComboBox1.Text = ComboBox1.SelectedItem = 1 
End While 

If count >= 1 Then 
    loadtrainer2() 
End If 
+0

何も選択されていないので:あなたは、パラメータidを受け入れるようにloadtrainer2方法を変更する必要があります

For Each row As DataRow In dt.Rows loadtrainer2(CInt(row("emp_id"))) Next 

。あなたは途中でHasRowsを必要としません。行がない場合、whileループはブロックをスキップします。 – LarsTech

+0

'ComboBox1.SelectedItem = 1'ですか?いいえ、それは「偽」です。 '私はこの機能をloadtrainer2()をコンボボックスのすべての項目に実行する必要があります。その文は意味をなさない。それを拡大できますか? – LarsTech

+0

@LarsTech uhmmm。私はコンボボックスを埋めるために何をしようとしているのかは従業員のIDです。したがって、従業員の場合はコンボボックスを塗りつぶして、IDを選択してloadtrainer2()関数に実行して、何らかの情報をテーブルに更新する必要があります。 – Primitive

答えて

0

OK、私はそれは次のようになりますことを決定したいくつかのコメントの後に答えを投稿するのが簡単です。

代わりにDataTableを使用することを検討します。ような何か:

Dim dt As New DataTable 
dt.Load(cmd.ExecuteReader) 

あなたはComboBoxで値を表示するために欠けている場合は、それに応じてプロパティを割り当てる:

ComboBox1.DataSource = dt 
ComboBox1.DisplayMemeber = "emp_name" 'This is a guess on the column name 
ComboBox1.ValueMember = "emp_id" 

あなたが値を表示したくない場合は必要ありません。 ComboBoxとし、代わりにDataTableコードを使用してください。

その後の代わりに使用してREADERあなたでしDataTableをループ:

Private Sub loadtrainer2 (ByVal id As Integer) 

End Sub 
関連する問題