Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1871
  • Last Modified:

could not bind to new display member. Parameter name: newDisplayMember

I have this function that is supposed to work fine.
Somehow it does not
It gives me error and the combobox has a datarowview for each record.
Solution is a definate 'A'
Help Appreciated.

    Private Sub loadNewInvestors()
        Try
            'Load data for new investor list.

            Dim ssSQL As String
            ssSQL = "ssInvestorsGetList"

            Dim ssCon As SqlConnection = New SqlConnection(eRampConnStr)
            Dim ssCmd As SqlCommand = New SqlCommand(ssSQL, ssCon)
            Dim ssDa As SqlDataAdapter = New SqlDataAdapter(ssCmd)
            Dim loanListDs As DataSet = New DataSet

            ssDa.Fill(loanListDs)

            newInvestor.DataSource = loanListDs
            newInvestor.ValueMember = "company"
            newInvestor.DisplayMember = "orgId"
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

ThanX
0
ECIQue
Asked:
ECIQue
1 Solution
 
ramesh12Commented:
What is the error. check your sql to have both of the fields that you are using with your newInvestor
0
 
natlozCommented:
What kind of ssSQL statement is that? A call to a stored procedure or something??? I doesn't look like you are specifying enough information. A sample would be...

'Pass connection string to SqlConnection
                oConn.ConnectionString = strConn

                '******************************
                'Load the Company Dataset Table
                '******************************
                'SQL Database statements
                oComm = New SqlCommand
                oComm.CommandType = CommandType.StoredProcedure
                oComm.CommandText = "spGetAdminCompany"
                oComm.Connection = oConn

                'Send in parameters (0 means all branches)
                oComm.Parameters.Add(New SqlParameter("@pkCompanyID", SqlDbType.Int)).Value = 0

                'create and fill the Data Adapter
                Dim oDa As New SqlDataAdapter(oComm) 'SQL Data Adapter object
                oDa.Fill(_oDsAdmin, "spGetAdminCompany")

                With cboCompany
                    .DataSource = _oDsAdmin.Tables("spGetAdminCompany")
                    .ValueMember = "pkCompanyID"
                    .DisplayMember = "varCompanyCode"
                End With

                cboCompany.SelectedValue = intSelectedCompany

                'Remove parameters
                oComm.Parameters.Clear()

                '*****************************
                'Load the Branch Dataset Tab
0
 
ECIQueAuthor Commented:
I have already tried that
This is all alright.

I also treid all suggestions in this discussion

http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_21040522.html?query=could+not+bind+to+the+new+display+member&topics=323

Let me know
-Smit.
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
natlozCommented:
Is it a stored procedure? Can you post the definition of your stored proc?
0
 
natlozCommented:
Change your catch to be...

catch ex as exception
  msgbox (ex.tostring)

for a more verbose error message...and post the message.
0
 
ECIQueAuthor Commented:
FYI it is pulling the data into the dataset.
when I go into debug
I tried to check the values and the caption on columns all exist and match the info.

Here is what I mean
This is the debug window info
===========================================
?loanlistds.Tables(0).Columns(0).Caption
"company"

?loanlistds.Tables(0).Columns(1).Caption
"orgId"

?loanlistds.Tables(0).Rows.Count
2

?loanlistds.Tables(0).Rows(0)(0)
"Company Name" {String}
    String: "First NLC Financial Services"

?loanlistds.Tables(0).Rows(0)(1)
"100011010" {String}
    String: "1001959"

?loanlistds.Tables(0).Rows(1)(0)
"Name" {String}
    String: "Name"

?loanlistds.Tables(0).Rows(1)(1)
"1111111" {String}
    String: "1111111"

?loanlistds.Tables(0).Columns.Count
2

Let me knwo how it goes.
I dont think there is any error in data retrival as I can see the data there.
0
 
ECIQueAuthor Commented:
System.ArgumentException: Could not bind the new display member
Parameter name: newDisplayMember
  at system.windows.forms.listcontrol.setdataconnection(object newdatasource, bindingmemberinfo newdisplaymember, boolean force)

lemme knwo if that helps
Smit.
0
 
natlozCommented:
Try this for kicks Smit...just to see....

Right click your solution and ADD ITEM -> Dataset and call it "dsLists"

You will get the yellow screen and click Server Explorer...
Navigate to your SQL database and drag the stored procedure into the window....
Delete the second table it creates called TABLE... and just keep ssInventorsGetList table...
Save and close the dataset....

Now use...
Private Sub loadNewInvestors()
        Try
            'Load data for new investor list.
            Dim ssSQL As String
            ssSQL = "ssInvestorsGetList"

            Dim ssCon As SqlConnection = New SqlConnection(eRampConnStr)
            Dim ssCmd As SqlCommand = New SqlCommand(ssSQL, ssCon)
            Dim ssDa As SqlDataAdapter = New SqlDataAdapter(ssCmd)
            Dim oDs As DataSet = New DataSet("dsLists")

           'create and fill the Data Adapter
           ssDa.Fill(oDs, "ssInventorsGetList")

                             
           With newInvestor
                    .DataSource = oDs.Tables("ssInventorsGetList")
                    .ValueMember = "company" <---NOTE THIS MAY NEED TO BE ORGID ... VALUE IS KEY
                    .DisplayMember = "orgID" <----THIS IS WHAT SHOWS IN COMBO BOX VISUALLY
           End With

                 Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
0
 
DotNetLover_BaanCommented:
Hi ECIQue,
this is a bad approach to binding...

            newInvestor.DataSource = loanListDs
            newInvestor.ValueMember = "company"
            newInvestor.DisplayMember = "orgId"

ALWAYS bind to a table.

            newInvestor.DataSource = loanListDs.Table(0)
            newInvestor.ValueMember = "company"
            newInvestor.DisplayMember = "orgId"

OR..

while specifying the column titles use proper mapping (TableName.ColumnName)

            newInvestor.DataSource = loanListDs
            newInvestor.ValueMember = "MyTable.company"
            newInvestor.DisplayMember = "MyTable.orgId"

-Baan
0
 
ECIQueAuthor Commented:
I already had tried loanListDs.tables(0) and that did not work

any idea why ???
Greatly appreciate all your help.

-Smit.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now