Cannot bind to the new display member. Parameter name: newDisplayMember

I'm getting the above error while trying to load a ComboBox. It only occurs on the second execution of the LoadDirectionComboBox() Function. What does this mean? Below is the process of execution.

   'This Sub is executed from a Form Class
    Public Sub LoadDirectionComboBox()
        Try
            InitializeErrorClass(EH)
            BL.LoadDirectionComboBox(EH)

            If EH.DataSet.Tables(0).Rows.Count > 0 Then
                cmbDirection.DataSource = Nothing
                cmbDirection.DataSource = EH.DataSet.Tables(0)
                cmbDirection.DisplayMember = EH.DataSet.Tables(0).Columns(1).ColumnName
                cmbDirection.ValueMember = EH.DataSet.Tables(0).Columns(0).ColumnName
            End If

        Catch ex As Exception
            EH.ErrorMessage = "LoadDirectionComboBox() - " & ex.Message & "~E"
        End Try

        EH.ProcessMessages(Me, sbr, EH.ErrorMessage)
    End Sub
   '
   '
   'This Function initializes an Error Handling Class Objects and is in a Module File
    Public Function InitializeErrorClass(ByRef EH As ErrorHandling.ErrorHandler)
        Try
            EH.DataSet = New DataSet
            EH.DataTable = New DataTable
            EH.Exception = Nothing
            EH.ErrorMessage = ""
            EH.Character = ""
            EH.Bool = False
            EH.Number = 0

        Catch ex As Exception
            EH.ErrorMessage = "InitializeErrorClass() - " & ex.Message & "~E"
        End Try

        Return EH
    End Function
   '
   '
   'This Function resides in my Business Layer
    Public Function LoadDirectionComboBox(ByRef EH As ErrorHandling.ErrorHandler)
        Try
            Dim strFields As String = "direction_ID,direction"
            Dim strTableID As String = "LKUP_Directions"
            Dim strCriteria As String = "active <> 0"
            Dim strOrderBy As String = ""

            DL.GetData(strTableID, strFields, strCriteria, strOrderBy, EH)

        Catch ex As Exception
            EH.ErrorMessage = "LoadDirectionComboBox() - " & ex.Message & "~E"
        End Try

        Return EH
    End Function
   '
   '
   'This Function resides in my Data Layer
    Public Function GetData(ByVal tbl As String, ByVal keyFld As String, ByVal criteria As String, ByVal orderBy As String, ByRef EH As ErrorHandling.ErrorHandler)
        Try
            Dim strCriteria As String = ""
            Dim strOrderBy As String = ""

            DBConnection(EH)

            If EH.Bool Then
                sSQL = "SELECT " & keyFld & " FROM " & tbl

                If criteria.Length > 0 Then
                    strCriteria = " WHERE " & criteria
                    sSQL &= strCriteria
                End If

                If orderBy.Length > 0 Then
                    strOrderBy = " ORDER BY " & orderBy
                    sSQL &= strOrderBy
                End If

                cmd = New SqlCommand(sSQL, cnn)
                adp = New SqlDataAdapter
                adp.SelectCommand = cmd
                adp.Fill(EH.DataSet, 0)
                'adp.Fill(EH.DataSet, "Temp")
            End If

        Catch ex As Exception
            EH.ErrorMessage = "GetData() - " & ex.Message & "...Contact Engineering!" & "~E"
        Finally
            cnn.Dispose()
        End Try

        Return EH
    End Function
   '
   '
   'This Function resides in my Data Layer
    Public Function DBConnection(ByRef EH As ErrorHandling.ErrorHandler)
        Try
            frm.Name = "frmMain"
            cnn = New SqlConnection
            EH.Bool = False

            With cnn
                .ConnectionString = strCNN
                .Open()
                EH.Bool = True
            End With

        Catch ex As Exception
            EH.ErrorMessage = "DBConnection() - " & ex.Message & "...Contact Engineering!" & "~E"
        End Try

        Return EH
    End Function

Open in new window

BlakeMcKennaAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
CodeCruiserConnect With a Mentor Commented:
Yes that would have been my next option. On random occasions, this fixes the issue especially when reassigning/repopulating the combobox.
0
 
CodeCruiserCommented:
Try changing following

cmbDirection.DisplayMember = EH.DataSet.Tables(0).Columns(1).ColumnName
cmbDirection.ValueMember = EH.DataSet.Tables(0).Columns(0).ColumnName

to

Dim dispMember  As String = EH.DataSet.Tables(0).Columns(1).ColumnName
Dim valMember As String = EH.DataSet.Tables(0).Columns(0).ColumnName
cmbDirection.DisplayMember = dispMember
cmbDirection.ValueMember = valMember
0
 
BlakeMcKennaAuthor Commented:
I actually got it working. I moved the DataSource assignment statement beneath the DisplayMember/ValueMember statements and that seemed to work. Not sure why though...
0
 
BlakeMcKennaAuthor Commented:
Thanks for your help!
0
All Courses

From novice to tech pro — start learning today.