0

我正在开发一个 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
4

1 回答 1

0

在调用 AdaptSql.Update(DS) 之前检查 x_Row.RowState,对于新创建的行,行状态应为“已添加”,而现有记录应为“已修改”,因为它有一些更新。

于 2013-07-30T09:21:14.457 回答