我正在开发一个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
答案 0 :(得分:0)
在调用AdaptSql.Update(DS)之前检查x_Row.RowState,对于新创建的行,行状态应该是“Added”,而现有记录应该有“Modified”,因为它有一些更新。< / p>