• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 569
  • Last Modified:

VB.NET clear data binded listbox items doesn't work

I am at a loss. The button_click below is supposed to clear the items of a listbox, which is bound to a dataset, and then rebind based on a new set of parameters.   I really thought the:
lbbuyer.Datasource = Nothing statement would have  worked.

The result with the button push is simply that the new items simply get added on to the old ones.
Please Help


Private Sub btnGetBuyers_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetBuyers.Click 
lbBuyer.DataSource = Nothing
        lbBuyer.Items.Clear()
        OpenCon()
        Dim sqlcmd As New SqlCommand
        Dim strState As String = GetSelections(lbState)
        Dim strFund As String = GetSelections(lbFund)
        With sqlcmd
            .Connection = conString
            .CommandType = CommandType.StoredProcedure
            .CommandText = "SP_GETBUYERS"
            .CommandTimeout = 1000
            .Parameters.Add("@State", SqlDbType.Char, 3)
            .Parameters.Add("@Fund", SqlDbType.Char, 20)
            .Parameters("@State").Direction = ParameterDirection.Input
            .Parameters("@Fund").Direction = ParameterDirection.Input
            .Parameters("@State").Value = strState
            .Parameters("@Fund").Value = strFund
            .ExecuteNonQuery()
        End With
        Dim daBuyer As New SqlDataAdapter("SELECT DISTINCT CounterpartyName FROM tblInvBuyers", conString)
        daBuyer.Fill(dsInvoice, "Buyer")
        lbBuyer.DataSource = dsInvoice.Tables("Buyer")
        With lbBuyer
            .DataSource = dsInvoice.Tables("Buyer")
            .DisplayMember = "CounterpartyName"
        End With
        CloseCon()

Open in new window

0
suicehockey44
Asked:
suicehockey44
1 Solution
 
lucius_theCommented:
Is the dsInvoice declared on the form ?
If so, I think you forgot to empty it before making another daBuyer.Fill(dsInvoice, "Buyer"). Try first doing:

If dsBnvoice,Tables.Contains("Buyer") Then dsInvoice.Tables("Buyer").rows.clear

Or delete the table from dsInvoice, or dispose it and make a new one before filling it.
0
 
Thunder724Commented:
listbox.Clear
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

Get expert help—faster!

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

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