1

テキストボックスで一致する質問を再現するために、コンボボックスに質問IDを表示しようとしています。ただし、質問 ID が表示されるのではなく、5 つの質問 ID すべてに対して次のメッセージが表示されます。

WCInterface.ucQuestions+QuestionWCInterface.ucQuestions+Question

私のコード:

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 の表示方法についてご意見をいただければ幸いです。

4

2 に答える 2

0

最初にデータソースを割り当ててから、表示するフィールドを割り当てる必要があります

cmbQuestion.DataSource = Nothing 'データ ソースをリセットします

cmbQuestion.DataSource = retrieveQuestions() 'フォームのロード時

cmbQuestion.DisplayMember = "質問ID"

cmbQuestion.ValueMember = "質問ID"

于 2013-07-25T15:10:36.937 に答える