Solved

DataBindingSource CancelEdit

Posted on 2009-06-29
2
625 Views
Last Modified: 2012-06-27
Hello,

I have a form that has about 10 different controls (such as textboxes and comboboxes).  When the user attempts to BindingSource.MoveNext or BindingSource.MovePrevious, it checks to see if any changes were made and if so a MsgBox appears with "Yes", "No", or "Cancel".  When the user clicks "No" I call BindingSource.CancelEdit and DataSet.RejectChanges.  My problem comes when the user returns to the record and it still displays all the previous entered data (that was rejected).  How do I refresh that data, so it returns to the original values.

So for example:  The form loads and the first textbox contains "Value1".  I then change that to "Value2".  I move records, and when requested wether to save the data or not, i choose "No".  I then move back to the record I was just working on, but despite cancelling the edit and rejecting the changes the first textbox is still set to "Value2" - How do i set it so it's "Value1" instead?
Me.AdapterManager.UpdateAll(Me.DataSetManager)

Me.DataSetManager.RejectChanges()

Open in new window

0
Comment
Question by:Gunit2507
2 Comments
 
LVL 12

Accepted Solution

by:
wht1986 earned 500 total points
Comment Utility
Well I ran a quick example, but I did not have this problem.  My form has a typed dataset, 4 textboxes, and a binding source (as shown in the picture).  The code below after prompting, rejects or accepts the changes and moves the CurrentPosition. Perhaps you can see something your code is missing from the example
Imports System.IO

Imports System.DirectoryServices

Imports System.Linq

Imports System.Data.Linq

Imports System.Management
 

Public Class Form1
 

    Private oldPosition As Integer = -1
 

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

        DataSet11.DataTable1.AddDataTable1Row("hello", "Bob", "Bobson")

        DataSet11.DataTable1.AddDataTable1Row("goodbye", "Michael", "Jackson")

        DataSet11.DataTable1.AddDataTable1Row("hail", "fellow", "adventurer")

        DataSet11.AcceptChanges()

    End Sub
 
 

    Private Sub BindingSource1_PositionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingSource1.PositionChanged
 

        If oldPosition > -1 Then

            If DataSet11.DataTable1.Rows(oldPosition).RowState = DataRowState.Modified Then

                If (MessageBox.Show(Me, "Accept?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No) Then

                    DataSet11.DataTable1.Rows(oldPosition).RejectChanges()

                    BindingSource1.Position = oldPosition

                    Return

                End If

            End If

            DataSet11.DataTable1.Rows(oldPosition).AcceptChanges()

        End If
 

        oldPosition = BindingSource1.Position
 

    End Sub
 
 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        BindingSource1.MoveNext()

    End Sub
 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        BindingSource1.MovePrevious()

    End Sub

End Class

Open in new window

Capture.JPG
0
 

Author Closing Comment

by:Gunit2507
Comment Utility
After spending about an hour researching this "problem" and then finally giving up and asking experts exchange to only find out I wasn't calling my code because the button handle event was incorrect.  Thanks a lot!
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

771 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

10 Experts available now in Live!

Get 1:1 Help Now