SQLReplaceFor
DataTable的SQLReplaceFor方法和ReplaceFor有些类似,不过ReplaceFor用于批量更新已经加载的数据,而SQLReplaceFor用于批量更新后台数据。
语法:
SQLReplaceFor(DataColName,Value,Filter,IsExpression)
DataColName: 要更新的列
Value: 更新值或表达式
Filter: 更新条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异。
IsExpression:逻辑型,设置为True,表示Value参数不是一个值,而是一个表达式。
SQLReplaceFor会返回一个整数,表示合计有多少行的值被替换了。
提示:
1、SQLReplaceFor的操作是即时生效的,且无法撤销,所以在编写代码的时候,务必要先用测试数据进行验证,或者做好备份,以免对数据代码造成无法挽回的影响。
2、SQLReplaceFor执行后,已经加载到DataTable的数据并不会受影响,还是保持原值不变,直到重新加载或重新打开项目。
示例一
将产品为PD01的订单的折扣全部改为0.05:
Dim
cnt
As
Integer
cnt =
DataTables("订单").SQLReplaceFor("折扣",
0.05,
"产品 =
'PD01'")
Output.Show("合计更新了"
& cnt &
"条记录的折扣!")
示例二
和ReplaceFor不同,SQLReplaceFor的更新值可以是一个表达式,例如将数量大于800的订单折扣,在原基础上增加0.05:
Dim
cnt As
Integer
cnt =
DataTables("订单").SQLReplaceFor("折扣",
"折扣 +
0.05",
"数量 >
800",True)
Output.Show("合计更新了"
& cnt
& "条记录的折扣!")
提示:如果更新值是一个表达式,请将第四个参数设置为True。