2013-07-25 160 views
1

我想在組合框中顯示問題ID,以便在文本框中重現匹配問題。然而,而不是問題的ID的出現,我收到這對所有5問題的ID:組合框不顯示DisplayMember

WCInterface.ucQuestions + QuestionWCInterface.ucQuestions +問題

我的代碼:

Private loaded As Boolean = False 

Private Sub ucQuestions_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    cmbQuestion.DisplayMember = "Question_ID" 
    cmbQuestion.ValueMember = "Question_ID" 
    cmbQuestion.DataSource = retrieveQuestions() 'when form loads 

    loaded = True 

End Sub 

Private Sub cmbQuestion_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbQuestion.SelectedIndexChanged 
    If (loaded) Then 

     cmbQuestion.DisplayMember = "Question_ID" 
     cmbQuestion.ValueMember = "Question_ID" 
     cmbQuestion.DataSource = Nothing 'Resets data source 
     cmbQuestion.DataSource = retrieveQuestions() 'when form loads 
    End If 
End Sub 

Public Function retrieveQuestions() As List(Of Question) 

    Dim typeList As New List(Of Question) 
    Dim Str As String = "SELECT Question_ID, Question_Text FROM Question" 
    Try 
     Using conn As New SqlClient.SqlConnection(DBConnection) 
      conn.Open() 
      Using cmdQuery As New SqlClient.SqlCommand(Str, conn) 
       Using drResult As SqlClient.SqlDataReader = cmdQuery.ExecuteReader() 
        While drResult.Read 
         typeList.Add(New Question(drResult("Question_ID"), drResult("Question_Text"))) 
        End While 
       End Using 'Automatically closes connection 
      End Using 
     End Using 

    Catch ex As Exception 

     MsgBox("Question List Exception: " & ex.Message & vbNewLine & Str) 

    End Try 

    Return typeList 

End Function 

我對於我如何顯示問題ID,感謝您的任何建議,謝謝

+0

凡此錯誤消息出現? –

+0

沒有錯誤信息,程序編譯正常。問題是在組合框本身,「WCInterface.ucQuestions + QuestionWCInterface.ucQuestions +問題」出現在Question_Id應該是 – Nick

回答

1

您沒有發佈您的Question類,但DisplayMember和ValueMember字段與Question類中的屬性字段不匹配:

它應該是這個樣子:

Public Class Question 
    Property QuestionID As Integer 
    Property QuestionText As String 

    Public Sub New(q_ID As Integer, q_Text As String) 
    QuestionID = q_ID 
    QuestionText = q_Text 
    End Sub 
End Class 

那麼你的數據源屬性應該是這樣的:

cmbQuestion.DisplayMember = "QuestionID" 
cmbQuestion.ValueMember = "QuestionID" 
cmbQuestion.DataSource = retrieveQuestions() 
+0

謝謝,它現在正常工作!正如你所說,我的問題類與Display和Value成員不匹配。 – Nick

0

您必須先指定數據源,然後指定字段,以顯示

cmbQuestion.DataSource =無 '重置數據源

cmbQuestion.DataSource = retrieveQuestions()' 時窗體加載

cmbQuestion.DisplayMember = 「Question_ID」

cmbQuestion.ValueMember = 「Question_ID」

+0

Thankyou,我曾嘗試過,但我收到cmbQuestion.ValueMember =「Question_ID」這個錯誤:不能綁定到新的顯示成員。參數名稱:newDisplayMember – Nick