违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。
东海凌波 2013-10-12 11:27:28 紧急求助:使用VB.NET2008 SP1+SQL SERVER2008 R2开发,在更新DATASET时使用以下方法:
Public Overloads Function UpdateDataSet(ByVal conn As DbConnection, ByVal ds As DataSet, ByVal tbName As String) As Integer
Dim dbCommand As DbCommand = Nothing
Dim iResult As Integer = 0
Try
Dim DbDataAdapter As DbDataAdapter = dbfactory.CreateDataAdapter()
dbCommand = conn.CreateCommand
dbCommand.CommandText = "SELECT * FROM " & tbName
dbCommand.CommandType = CommandType.Text
DbDataAdapter.SelectCommand = dbCommand
Dim cmdBuilder As DbCommandBuilder = dbfactory.CreateCommandBuilder()
cmdBuilder.DataAdapter = DbDataAdapter
If conn.State = ConnectionState.Closed Then
conn.Open()
End If
'处理并发情况(分布式情况)
SyncLock GetType(DBHelper)
iResult = DbDataAdapter.Update(ds, tbName)
End SyncLock
Return iResult
Catch ex As Exception
log.Error(ex)
Throw ex
End Try
End Function
程式执行到 iResult = DbDataAdapter.Update(ds, tbName)报错,提示:违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。
在整表更新DATASET时,DATASET里面只有一个TABLE,且TABLE名和数据库中表名完全一致,数据列名和列数和数据库中也一致,这个问题要怎么处理,请各位指教,谢谢。