rocky09 Ответов: 1

Нарушение параллелизма команда обновления


Всем Привет,

Может ли кто-нибудь мне помочь? Как избавиться от этой ошибки. нарушение параллелизма команда обновления Последние пару дней я боролся изо всех сил. Пробовал много решений из интернета, но не смог решить эту проблему. Может быть, я совсем новичок.

Что я уже пробовал:

Imports Microsoft.Office
Imports System.Data.OleDb
Public Class Form1
    Dim dt As New DataTable
    Dim cnn As New OleDb.OleDbConnection


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


        'filling analyst filter

        Dim sText As String = String.Empty
               Dim sConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\ecxx-store\Exxx xxxxsk\Txx Axxx\Enxx Flxxx\Source\Exx_Exxx_Flagging.accdb" 'Put your connection string in here

        Using cn As New OleDb.OleDbConnection(sConnString)
            cn.Open()
            Dim cmd As New OleDb.OleDbCommand("SELECT Distinct Analyst FROM EF ORDER BY Analyst", cn)
            Dim r As OleDb.OleDbDataReader = cmd.ExecuteReader()

            While r.Read()
                ComboBox7.Items.Add(r("analyst"))


            End While
            r.Close()

            cn.Close()
        End Using

        'end of filling analyst filter

        Me.EFTableAdapter.Fill(Me.Exx_Exxxx_ShippingDataset.EF)



        Me.Label19.Text = "Welcome " & StrConv(Environment.MachineName, vbProperCase)
        Me.Label20.Text = EFBindingSource.Count.ToString() & " entries"

        'Setting Followup Status
        Me.ComboBox8.Text = "Waiting for approval"




        'disabling Second Analyst Details
        Me.txtsecondanalyst.Enabled = False
        Me.txtapproval.Enabled = False
        Me.txtnotes.Enabled = False

    End Sub

 Private Sub txtdof_ValueChanged(sender As Object, e As EventArgs) Handles txtdof.ValueChanged
        Me.txtnd.Text = DateDiff(DateInterval.Day, CDate(txtdof.Text), Now())
    End Sub

    Private Sub ComboBox7_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox7.SelectedIndexChanged
        If IsNothing(Me.ComboBox8.Text) Then
            EFBindingSource.Filter = "[Analyst] LIKE '%" & ComboBox7.Text & "%'"
        Else
            EFBindingSource.Filter = "[FollowupStatus] LIKE '%" & ComboBox8.Text & "%' AND [Analyst] Like '%" & ComboBox7.Text & "%'"

        End If

        'count of datagrid
        Me.Label20.Text = EFBindingSource.Count.ToString() & " entries"
    End Sub

    Private Sub ComboBox8_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox8.SelectedIndexChanged
        If IsNothing(Me.ComboBox7.Text) Then
            EFBindingSource.Filter = "[FollowupStatus] LIKE '%" & ComboBox8.Text & "%'"
        Else
            EFBindingSource.Filter = "[FollowupStatus] LIKE '%" & ComboBox8.Text & "%' AND [Analyst] Like '%" & ComboBox7.Text & "%'"

        End If

        'count of datagrid
        Me.Label20.Text = EFBindingSource.Count.ToString() & " entries"



    End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'update
        Me.txtnd.Visible = True

        Me.txtnd.Text = DateDiff(DateInterval.Day, CDate(txtdof.Text), Now())

        On Error GoTo SaveErr

        EFBindingSource.EndEdit()
        EFTableAdapter.Update(Exx_Exxxx_ShippingDataset.EF)


        Me.txtsecondanalyst.Enabled = False
        Me.txtapproval.Enabled = False
        Me.txtnotes.Enabled = False



        MsgBox("Record Updated or Saved")


SaveErr:

    End Sub

 Private Sub Form1_Closed(sender As Object, e As EventArgs) Handles Me.Closed
        EFBindingSource.EndEdit()
        Me.TableAdapterManager1.UpdateAll(Me.Exx_Exxx_ShippingDataset)
    End Sub
End Class

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Ошибка параллелизма возникает, когда данные, которые вы пытаетесь обновить, уже были обновлены между моментом получения изменяемых данных и моментом выполнения обновления.

If встречается в предложении UPDATE statement WHERE. Он ищет запись не только на основе идентификатора записи, но и на основе идентификатора и всех значений полей, соответствующих значению, которое вы получили ранее. Обновление действительно выполняется, но количество затронутых записей возвращается как 0 вместо 1. Вот тут-то и возникает ошибка параллелизма.

Нет ни одного маленького решения этой проблемы. Вы должны отладить код и данные, чтобы выяснить, где проблема и почему она возникает в первую очередь. Только тогда вы сможете понять, каким будет истинное "исправление".