通过Dim pd As
DataTable
'订单表
Dim od As
DataTable
'订单明细表
Dim cmd
As New SqlCommand()
cmd.ConnectionName = "Orders"
Try
cmd.BeginTransaction()
cmd.CommandText =
"Select * F rom Orders Where OrderID =
10259"
pd = cmd.ExecuteReader(True)
'加上参数True,生成的DataTable可修改保存
cmd.CommandText =
"Select * F rom OrderDetails Where OrderID =
10259"
od = cmd.ExecuteReader(True)
If
pd.DataRows.Count
> 0
Then
pd.DataRows(0)("OrderDate") =
Date.Today
End
If
For
Each dr As
DataRow
In od.DataRows
If dr("Quantity") > 50
Then
dr("Discount") =
0.2
Else
dr("Discount") =
0.1
End
If
Next
pd.Save()
od.Save()
If
pd.HasChanges
OrElse od.HasChanges
Then
'如果任何一个表保存失败
cmd.Rollback() '则回滚事务
Else
cmd.Commit()
'否则提交事务
End
If
Catch ex As Exception '如果出错
cmd.Rollback()
'则回滚事务
MessageBox.Show(ex.Message, "错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
End
Try
这样保存数据之后,然后对应的表,进行
DataTables("订单明细表").LoadFilter = "OrderID = '10259'"
DataTables("订单明细表").Load
发现load时间需要很长,我这实际明细表有300多万行,新增行后,重新load这个单号的明细需要30秒,请问这个是哪方面的问题?
而且是通过上面SqlCommand处理后第一次load需要这样,后面load加载正常,速度很快
[此贴子已经被作者于2022/5/31 13:58:29编辑过]