Solved

DataBindingSource CancelEdit

Posted on 2009-06-29
2
636 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
ID: 24742685
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
ID: 31598211
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

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
RUNRMTCMD from AS/400 12 69
SQL LINE CONTINUATION ISSUE 12 38
VBA to find and replace multiline text from VBA modules 8 64
Access Schema 6 26
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
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…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

828 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