并发冲突 - UpdateCommand影响了预期的1条记录中的0条

时间:2013-07-30 09:05:32

标签: vb.net

我正在开发一个VB.NET项目,我正在尝试在SQL DB中插入/更新一些行。

为此,我使用下面的代码基于3个参数恢复数据集。 如果数据集没有返回数据,则代码只会插入一个新行。

这很好用。

但是,如果数据返回一行(意味着表中已经存在该行),那么我想更新其中一个值。 这是我在这篇文章的标题中收到错误的地方。

任何人都可以帮助我解决我出错的地方吗?

提前谢谢。

Dim x_Update As Boolean

AdaptSql = New Data.AdapterX(SQL_ConnectionString)
DS = New DatsetX
AdaptSql.Fill(DS, Number, PeriodID, TypeID)

If DS.tbl_A.Count > 0 Then
    x_Row = DS.tbl_A(0)
    x_Row.BeginEdit()
    x_Update = True
Else
    x_Row = DS.tbl_A.NewRow
End If

x_Row.Number = Number
x_Row.DateID = PeriodID
x_Row.TypeID = TypeID
x_Row.Value = Value
x_Row.UpdatedDate = Date.Now

If x_Update = False Then DS.tbl_A.Addtbl_ARow(x_Row)

x_Row.EndEdit()

AdaptSql.Update(DS)

x_Row = Nothing
DS.Dispose()
AdaptSql = Nothing

1 个答案:

答案 0 :(得分:0)

在调用AdaptSql.Update(DS)之前检查x_Row.RowState,对于新创建的行,行状态应该是“Added”,而现有记录应该有“Modified”,因为它有一些更新。< / p>