Concurrency Violation with IDE Generated Objects

daviddoria

Member
Joined
Dec 24, 2008
Messages
9
I am trying to make a simple demo of a DataGridView bound to a database table. I want to add a row, delete a row, and save the table.

I used the IDE to do just about everything. It created the BindingSource when I set the datasource of the DataGridView to a table of a DataSource I added to the project.

Now the only code looks like this:

Code:
Public Class Form1

    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TODO: This line of code loads data into the TestDataSet._Event table. You can move, or remove it, as needed.
        Me.EventTableAdapter.Fill(Me.TestDataSet._Event)
        cmbReason.SelectedIndex = 0
    End Sub

    Private Sub btnDeleteRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeleteRow.Click

        DirectCast(Me.EventBindingSource.Current, DataRowView).Delete()

    End Sub

    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click

        Me.EventTableAdapter.Update(Me.TestDataSet)

    End Sub

    Private Sub btnAddRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddRow.Click
        Dim NewEvent As DataRowView = DirectCast(Me.EventBindingSource.AddNew, DataRowView)

        add all the attributes to the new row
        NewEvent.Item("associate") = "Test"
        NewEvent.Item("inout") = "IN"
        NewEvent.Item("reason") = cmbReason.SelectedItem

        NewEvent.Item("timefield") = Now
        NewEvent.EndEdit() commit
    End Sub
End Class

I set the AutoIncrementStep to 1 in my Key field in the dataset (the .xsd). I left the Key field visible in the DataGridView and it seems to be adding the correct Key when a row is added. However, I still occasionally get the "concurrency violation" error if I just mess around with these 3 buttons. Any idea why/how to prevent that?

Thanks,

Dave
 
Back
Top