У меня возникли проблемы с обновлением изменений, которые я внес в datatable через dataadapter. Я получаю «нарушение параллелизма: UpdateCommand затронуло 0 из 10 строк» Нарушение параллелизма, обновляющее базу данных SQL с помощью dataadapter
'Get data
Dim Docs_DistributedTable As New DataTable("Docs_Distributed")
Dim sql = "SELECT DISTINCT CompanyID, SortKey, OutputFileID, SequenceNo, DeliveredDate, IsDeliveryCodeCounted, USPS_Scanned FROM Docs_Distributed_Test"
Using sqlCmd As New SqlCommand(sql, conn)
sqlCmd.CommandType = CommandType.Text
Docs_DistributedTable.Load(sqlCmd.ExecuteReader)
End Using
'Make various updates to some records in DataTable.
'Update the Database
Dim sql As String = "UPDATE Docs_Distributed "
sql += "SET DeliveredDate = @DeliveredDate "
sql += "WHERE SequenceNo = @SequenceNo"
Using transaction As SqlTransaction = conn.BeginTransaction("ProcessConfirm")
Try
Using da As New SqlDataAdapter
da.UpdateCommand = conn.CreateCommand()
da.UpdateCommand.Transaction = transaction
da.UpdateCommand.CommandText = sql
da.UpdateCommand.Parameters.Add("@DeliveredDate", SqlDbType.DateTime).SourceColumn = "DeliveredDate"
da.UpdateCommand.Parameters.Add("@SequenceNo", SqlDbType.Int).SourceColumn = "SequenceNo"
da.ContinueUpdateOnError = False
da.Update(Docs_DistributedTable)
End Using
transaction.Commit()
Catch ex As Exception
transaction.Rollback()
End Try
End Using
Теперь вот улов. Я выбираю записи DISTINCT и по существу получаю одну строку в SequenceNo. Там может быть много строк с тем же SequenceNo, и я надеюсь, что это обновит их все. Я не уверен, связано ли это с моей проблемой или нет.
OMG. Вот и все. Я был так одержим ошибкой, что я не мог видеть лес для деревьев. Мне так стыдно. – Brett