但是现在不是可以操作临时表了?
示例五
ExecuteReader有一个可选参数,如果设置为True,那么生成的DataTable不仅可以修改,还可以保存。
新建一个文件,在命令窗口测试下面的代码,会在A的第一行的第一列写入123:
Dim cmd As new SQLCommand
Dim dt As DataTable
cmd.CommandText = "select * From {表A}"
dt = cmd.ExecuteReader(True) '记得将参数设置为True
dt.DataRows(0)("第一列") = 123
dt.Save()
DataTables("表A").Load() '重新加载表A,看看值是否已经变化
有了这个特性,很多时候,我们不再需要合成Update语句来更新没有加载的后台数据了。
例如要将订购数量超过100的订单的折扣,统一设置为0.05,代码为:
Dim cmd As new SQLCommand
Dim dt As DataTable
cmd.CommandText = "Select [_Identify],折扣 From {订单} Where 数量 >= 500"
dt = cmd.ExecuteReader(True) '记得将参数设置为True
For Each dr As DataRow In dt.DataRows
dr("折扣") = 0.05
Next
dt.Save()