Solved

Loop through and delete an item from a combo box

Posted on 2007-11-18
6
1,360 Views
Last Modified: 2013-11-17
I set up a combo box in VB.NET CF using the following code:

sql = "Select ColGUID, Collector From Collectors"  (this is WAY over simplified, but the number of columns and the type of data is the same)

Dim ds As New DataSet
Dim da As New SqlCeDataAdapter(sql, MainForm.conn)
da.Fill(ds, "Collectors")

If ds.Tables(0).Rows.Count < 1 Then
     MsgBox("All of the dust collectors in this location have been recorded today", MsgBoxStyle.OkCancel)
     da.Dispose()
     ds.Dispose()
     MainForm.G.ExitApp(True)
End If

With cboCollector
     .DataSource = ds.Tables("Collectors")
     .DisplayMember = "Collector"
     .ValueMember = "ColGUID"
End With
da.Dispose()
ds.Dispose()
cboCollector.Enabled = True

Now I would like to go back and iterate through each "line" in the combobox and delete items based on a specific criteria ... for example, I would like to do something like this:

With each item in cboCollector
   If condition true then DeleteItem
End With

I've looked at different examples and none of them seem to work ... is this even possible with compact framework? I've tried to exclude the itmes by being creative with my sql statement, but the sql command is just too darn complicated and I can't make it work. The item(s) I want to delete are really simple to find after the combobox is populated.
0
Comment
Question by:mikesims10670
  • 4
  • 2
6 Comments
 
LVL 47

Expert Comment

by:Wayne Taylor (webtubbs)
ID: 20310546
Hi mikesims10670,

Try iterating through the bound datatable....

        For Each dr As DataRow In CType(cboCollector.DataSource, DataTable).Rows
            If dr("ColGUID") = "whatever" Then
                dr.Delete()
            End If
        Next

Regards,

Wayne
0
 
LVL 1

Author Comment

by:mikesims10670
ID: 20310602
That seems to be working, but it fires the SelectedIndexChanged of cboCollector and actually chooses the first value in the list which then prompts the user as though they had chosed that item in the list. Do you have any idea how I can prevent this?
0
 
LVL 47

Accepted Solution

by:
Wayne Taylor (webtubbs) earned 500 total points
ID: 20310654
The normal method is to have a class level boolean variable (ie, declared outside all procedures), and set it to true when deleting the item/s....

    Private Deleting As Boolean

...then set it to true when deleting, and set it back to false when done....

        Deleting = True
        For Each dr As DataRow In CType(cboCollector.DataSource, DataTable).Rows
            If dr("ColGUID") = "whatever" Then
                dr.Delete()
            End If
        Next
        Deleting = False

...and then in the SelectedIndexChanged event, use this line to exit the sub....

        If Deleting Then Exit Sub

Wayne
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 1

Author Comment

by:mikesims10670
ID: 20310728
Wayne, this is perfect! Thank you.

I'm have one more problem, and I created a question for it here:
http://www.experts-exchange.com/index.jsp?qid=22969536

Please take a look at it if you would.

Thank you,

Mike Sims
0
 
LVL 1

Author Comment

by:mikesims10670
ID: 20310746
Nevermind the last question, I figured it out.
0
 
LVL 1

Author Closing Comment

by:mikesims10670
ID: 31409880
Thank you very much. This saved me a lot of time.
mike@simtechdata.com
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Suggested Solutions

Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
In my previous article (http://www.experts-exchange.com/Programming/Languages/.NET/.NET_Framework_3.x/A_4362-Serialization-in-NET-1.html) we saw the basics of serialization and how types/objects can be serialized to Binary format. In this blog we wi…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now