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?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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
CodeCruiserCommented:
Yes that would have been my next option. On random occasions, this fixes the issue especially when reassigning/repopulating the combobox.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
BlakeMcKennaAuthor Commented:
Thanks for your help!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.