Foxtable(狐表)用户栏目专家坐堂 → DataTables("表A").load加载数据慢的问题


  共有4527人关注过本帖平板打印复制链接

主题:DataTables("表A").load加载数据慢的问题

帅哥哟,离线,有人找我吗?
z769036165
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
DataTables("表A").load加载数据慢的问题  发帖心情 Post By:2022/5/31 13:57:00 [只看该作者]

通过
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编辑过]

 回到顶部