Question

combo box does not update to dataadapter for some reason

Asked by: evansong

As I was working with combo boxes, I realized the combo boxes in the datagrid gets to update but not the one in the form.
Property for the combo box outside the datagrid is the following:
        '
        'cmb_Done_By
        '
        Me.cmb_Done_By.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.objdsSources, "Sources.Done_by"))
        Me.cmb_Done_By.DataSource = Me.objdsSources.Warpers
        Me.cmb_Done_By.DisplayMember = "Name"
        Me.cmb_Done_By.Location = New System.Drawing.Point(120, 400)
        Me.cmb_Done_By.Name = "cmb_Done_By"
        Me.cmb_Done_By.Size = New System.Drawing.Size(121, 21)
        Me.cmb_Done_By.TabIndex = 58
        Me.cmb_Done_By.ValueMember = "ID"

what is that I have to do so that update to work?
Because currently, if I choose "Charlie" from "Apple" and then close the form and reopen the form,
combo box shows "Apple" instead of "Charlie".
The text box seems to get update just fine.
combo box and text box are both from same dataset.
What is that I am missing that this combo box outside the datagrid is not updating?

    Private Sub cmb_Done_By_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_Done_By.SelectedIndexChanged

        'MessageBox.Show(cmb_Done_By.SelectedValue.GetType.ToString)
        MessageBox.Show(CType(cmb_Done_By.SelectedValue, String))

    End Sub

I tried the above and it is in Int32 and selectedvalue changes as index of combo box changes.
Thanx again.

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2003-09-19 at 12:45:45ID20743770
Tags

combo

,

update

,

box

Topic

.NET

Participating Experts
1
Points
350
Comments
7

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Datagrid & Dataset
    I'm not very familiar with Dataset usage. well, my objective is to get a datagrid populated with controls like textboxes, comboboxes & buttons. Is there anyway that I can populate the datagrid with all these controls together with some records from the database? How sh...
  2. Combo Box in Datagrid
    I have three columns in datagrid and they are all combo boxes. When the application start-up, the datagrid rows appear as text field with just the number(filled from dataset). When user click on the specific row in the datagrid, the combo box appears in the spot and the corr...
  3. Update Database using datagrid based on dataset
    I have a windows forms datagrid which shows one table. It is solely based on the dataset. I want to make changes on datagrid and when I click save button. All the updates should be saved to database. I am using the following code but it is not working........ The if cond...
  4. Error on DataAdapter Update VB .NET CE
    I have an application which runs on a CE device. It used SQL CE to join some data from two tables and displays this in a datagrid. Looking through the Microsoft documentation for binding datagrids I should then call the DataAdapter Update method to write the changed values wh...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: morphinexPosted on 2003-09-19 at 15:09:40ID: 9396839

Mmm, you created a new thread!  

I still would like to see the code behind the object/class

objdsSources

If you could paste that, it'd be good =)

 

by: evansongPosted on 2003-09-19 at 15:28:10ID: 9396892

Hi morphinex, my savior =)

I created this thread around same time I reply to you on other post,
http://www-tcsn.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_20742884.html

Currently, I am working step 4, you told me on the link above; which was to write a code to update the "SelectedIndex" of the combo box to reflect the item chosen or item that are loaded in the begining.
I created text box and binded to same datasource that I had with combobox and noticed that value in textbox were changed everytime I open the form but combobox was sitting on top of the row.

So, I am in a process of writing a code so that this one function searches a value of text box in a combobox.

I will update and write my code when I am done with it.
Give me 10 minutes =)
Thanx again~

BTW, how am I suppose to show the code of obdsSources? it's a typed dataset from dataadapters that I have.

 

by: evansongPosted on 2003-09-19 at 15:57:16ID: 9397033

This is what I tried in the Load method,

    Private Sub frmSources_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim currentID As Integer
        Dim isitFound As Boolean
        Dim i As Integer
        Dim comboID() As Integer

        i = 0
        currentID = CType(cmb_Done_By.SelectedValue, Integer)

        Try
            'Attempt to load the dataset.
            Me.LoadDataSet()
        Catch eLoad As System.Exception
            'Add your error handling code here.
            'Display error message, if any.
            System.Windows.Forms.MessageBox.Show(eLoad.Message)
        End Try

        For j As Integer = 0 To cmb_Done_By.Items.Count - 1
            ' I get an error here, saying can't cast from datarowview to integer
            ' So am I suppose to make a new DataRowView object then what?
            comboID(j) = CType(cmb_Done_By.Items.Item(j), Integer)
        Next


        While Not isitFound Or i <= cmb_Done_By.Items.Count - 1
            If currentID = comboID(i) Then
                cmb_Done_By.SelectedValue = i
                isitFound = True
            End If
            i += 1
        End While

        If Not isitFound Then
            cmb_Done_By.SelectedValue = -1
        End If

        Me.objdsSources_PositionChanged()
    End Sub

I wasn't expecting this to be time wasting..  Ah.. how easy it was when I made those combo boxes in MS Access! T.T

 

by: morphinexPosted on 2003-09-19 at 18:51:51ID: 9397498

Finally the server came up ~ earlier when I hit submit and it gave me the Exception error, I would've been really pissed if Firebird didn't keep what I've typed in cache... anyway --  my reply from earlier --

First thing... your comboID() is not initialized, it'd throw a null reference error.  You have to ReDim it.

Second thing, I think you are adding DataRowView objects into the combobox, which from my point of view, is very weird.  Something is really weird with your design....  You have "...combobox was sitting on top of the row," multiple databinding on different objects ~ Could you tell us what you are trying to do in its entirety?  Then break it down into how you are tackling the problem.  If you could do that, it might help the design function better =)

From what I'm seeing so far... here's my guess...

You have an Access Database, that you are connecting to via OLEDB ADO.NET DataAdapters.
You are mapping the Access Database onto the datagrid, and you would like to select/update/delete the data within the database.

To modify the database, you want the user to only utilize the combo boxes that are built into the datagrid.  Therefore, the inputs are pre-defined.  The combo boxes get their data from the Access Database as well, and you are binding each of them to the data you pull from the access database.

If I'm right, you have a column of combo boxes within the datagrid.  And if there are 5 rows in the datagrid, you'd have 5 combo boxes in that datagrid.  Mmm, that can't be it ...  

I don't know... but back to the original question -- how to update the combo box with DataAdapter.  

After giving it some thoughts, I don't understand why you would update the combo box with data adapter.  It would make sense, if you were to say... "how do I update the MS Access table with the selected value from within the combo box?"  

But I think you know how to update the MS Access table with the selected value from the combo box.

So, the question must be... "How do I pre-select the combo box value from the MS Access table into a combo box populated with a dataset ?"

If that's the case, DataAdapter isn't what you should use to "select" the combo box value.  I'm guessing that the datagrid contain a cell that you want the combo box to reflect.  And that if you pull the cell value from the datagrid, and you would like the combo box to show the cell value from the datagrid.

Welp, I'm hoping that's the case, I know I'm probably wrong though, so correct me if you would please.  

Anyway, to grab a cell value from the datagrid populated by a DataSet named "dsAllergic" this is how you would do it.

>>>>>

dim cellValue as string = dsAllergic.Tables(0).Rows(0)("ColumnName").ToString

<<<<<

then, to pre-select the combo box that you want to reflect this value, assuming it is populated and contains the cellValue in its item collection, you would do something like...

>>>>>
            For iInteger = 0 To ComboBox1.Items.Count - 1
                If ComboBox1.Items.Contains(cellValue) Then
                    'Note, cellValue is case sensitive, so if the casing doesn't match, combobox won't select the value
                    Me.ComboBox1.SelectedIndex = Me.ComboBox1.Items.IndexOf(cellValue)
                End If
            Next
<<<<<

I don't know, I am probably rambling somewhat...  hope some of this helps ~

 

by: evansongPosted on 2003-09-26 at 13:00:42ID: 9439101

hi morphinex,
I was busy lately with something else... <family stuff>
ANYWAY,
thanx again for the great help!
I realized, thanx to you, that everytime the form popup, combo boxes's text does not get to initialize correctly *WHY?*
So, I added the following lines, it's kindda ugly and long.. and I hope there are better ways of doing this than what I've did.
Can you think of any shorter way for doing this??
I mean, if I have more than one combo box in the form than, I have to initalize every one of them and I thought there must be a initizliation for all this in one line.
                                     =======

After objdsSources has been filled with proper data adapters.
-------------------------------------------------------------------------------
        ' This line is after the LoadDataSet(), since the rows has not been filled yet.
        Dim myVar As Object = objdsSources.Sources.Rows.Item(0).Item("Done_by")

        If Not IsDBNull(myVar) Then
            currentID = CType(myVar, Integer)
            i = 0
            j = 0

            Try
                Me.SqlConnection1.Open()
                drWarpers = daWarpers.SelectCommand.ExecuteReader

                While drWarpers.Read()
                    getItems(j) = CType(drWarpers.GetInt32(0), Integer)
                    j += 1
                End While

                j -= 1

                drWarpers.Close()
                SqlConnection1.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

            While Not (isitFound Or i >= j)
                Dim test As Integer
                test = getItems(i)

                If currentID = test Then
                    cmb_Done_By.SelectedValue = currentID
                    isitFound = True
                End If

                i += 1
            End While

            If Not isitFound Then
                cmb_Done_By.SelectedValue = -1
                cmb_Done_By.Text = ""
            End If

        Else
            cmb_Done_By.SelectedValue = -1
            cmb_Done_By.Text = ""
        End If

 

by: evansongPosted on 2003-09-26 at 13:21:45ID: 9439248

- My other question -

It's about the totalRows.
I am trying to fetch the totalRows from the drWarpers, but there wasn't a method such as count() or totalRows().
Is there way to get the totalRows without making my own?

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

        Dim isitFound As Boolean = False
        Dim i As Integer
        Dim j As Integer

        Dim drWarpers As Data.SqlClient.SqlDataReader

        Dim totalRows As Integer

        Dim currentID As Integer

        Try
            'Attempt to load the dataset.
            Me.LoadDataSet()
        Catch eLoad As System.Exception
            'Add your error handling code here.
            'Display error message, if any.
            System.Windows.Forms.MessageBox.Show(eLoad.Message)
        End Try

        ' This line is after the LoadDataSet(), since the rows has not been filled yet.
        Dim myVar As Object = objdsSources.Sources.Rows.Item(0).Item("Done_by")

        Try
            Me.SqlConnection1.Open()
            drWarpers = daWarpers.SelectCommand.ExecuteReader

            While drWarpers.Read()
                totalRows += 1
            End While

            totalRows -= 1

            drWarpers.Close()
            SqlConnection1.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

        Dim getItems As Integer() = New Integer(totalRows) {}

 

by: evansongPosted on 2003-09-29 at 09:16:53ID: 9452563

I figured out the last two part,
I found out how to get the totalRows as well as made a new class for all these things I wanted to do:

Public Class initialCombo

    Public Sub doHierarchy(ByRef myds As BrainInfo_vb.dsHierarchy, ByRef myConnection As SqlClient.SqlConnection, ByRef myAdapter As SqlClient.SqlDataAdapter, ByRef myComboBox As MyComboBox.MyComboBox, ByRef myTable As String, ByRef myColumn As String)

        Dim isitFound As Boolean = False
        Dim i As Integer
        Dim j As Integer
        Dim totalRows As Integer
        Dim currentID As Integer
        Dim drTable As Data.SqlClient.SqlDataReader

        ' This line is after the LoadDataSet(), since the rows has not been filled yet.
        Dim myVar As Object = myds.Hierarchy.Rows.Item(0).Item(myColumn)

        Try
            totalRows = myds.Tables(myTable).Rows.Count
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

        Dim getItems As Integer() = New Integer(totalRows) {}

        If Not IsDBNull(myVar) Then
            currentID = CType(myVar, Integer)
            i = 0
            j = 0

            Try
                myConnection.Open()
                drTable = myAdapter.SelectCommand.ExecuteReader

                While drTable.Read()
                    getItems(j) = CType(drTable.GetInt32(0), Integer)
                    j += 1
                End While

                j -= 1

                drTable.Close()
                myConnection.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

            While Not (isitFound Or i >= j)
                Dim test As Integer
                test = getItems(i)

                If currentID = test Then
                    myComboBox.SelectedValue = currentID
                    isitFound = True
                End If

                i += 1
            End While

            If Not isitFound Then
                myComboBox.SelectedValue = -1
                myComboBox.Text = ""
            End If

        Else
            myComboBox.SelectedValue = -1
            myComboBox.Text = ""
        End If
    End Sub

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...