Solved

Loop through and delete an item from a combo box

Posted on 2007-11-18
6
1,365 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
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 
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

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

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)…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

821 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