2017-03-17 27 views
-1

我似乎無法弄清爲什麼選定的索引不起作用。我需要將ComboBox索引從第一項移動到最後一項。問題的關鍵是,我需要在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

因爲沒有什麼是選擇。順便說一句,你不需要HasRows。如果沒有任何行,則while循環將跳過該塊。 – LarsTech

+0

'ComboBox1.SelectedItem = 1'?不,它不是,所以它是「假」。 '我需要對組合框中的所有項目執行這個函數loadtrainer2()這句話沒有意義。你可以擴展嗎? – LarsTech

+0

@LarsTech嗯。你可以看到我試圖填充組合框的員工ID。因此,如果他們是員工,他們將填寫組合框,我需要選擇每個ID並將其執行到loadtrainer2()函數,以便將某些信息更新到表中。 – Primitive

回答

0

確定後,發表一些意見,我決定這將是更容易發佈答案。

我會考慮使用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循環:

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

你需要改變你的loadtrainer2方法接受參數id

Private Sub loadtrainer2 (ByVal id As Integer) 

End Sub 
相關問題