Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
销售订单和销售订单明细通过销售订单编号关联
在销售订单中加载按钮代码:
DataTables("销售订单").LoadFilter="[销售订单日期] >= '" & Vars("stardate") & "'and [销售订单日期]<= '" & Vars("enddate") & "'"
'(SQL外部数据源,SQL数据库就安装在本机的)
DataTables("销售订单").Load
Dim s As String = DataTables("销售订单").GetComboListString("销售订单编号")
DataTables("销售订单明细").LoadFilter = "[销售订单编号] In('" & s.Replace("|","','") & "')"
DataTables("销售订单明细").Load
我加载销售订单日期范围为2011-01-01 至 2011-04-24的销售订单和销售订单明细,出错
将两条代码并起来看看,就是并起来
Dim s As String = DataTables("销售订单").GetComboListString("销售订单编号")
DataTables("销售订单").LoadFilter="[销售订单编号] In('" & s.Replace("|","','") & "')" and
[销售订单日期] >= '" & Vars("stardate") & "'and [销售订单日期]<= '" & Vars("enddate") & "'"
DataTables("销售订单明细").Load
不能这样连着,销售订单提按日期范围加载,加载后销售订单明细按销售订单的销售订单编号加载
主要是帮我分析看看,是原因导致加载超时呢?数据量并不多呀?
估计in 运算符后面的值太多,如果是上千甚至上万呢?
显示一下看看:
MessageBox.Show("[销售订单编号] In('" & s.Replace("|","','") & "')")
我选择时间范围为2011-04-01至2011-04-25,共加载销售订单表704条数据和销售订单明细表748条数据,都用了差不多1分钟时间
但用
MessageBox.Show("[销售订单编号] In('" & s.Replace("|","','") & "')")
却显示不出来,死机
请问是以下这个代码有问题吗?
DataTables("销售订单").LoadFilter="[销售订单日期] >= '" & Vars("stardate") & "'and [销售订单日期]<= '" & Vars("enddate") & "'"
'(SQL外部数据源,SQL数据库就安装在本机的)
DataTables("销售订单").Load
Dim s As String = DataTables("销售订单").GetComboListString("销售订单编号")
DataTables("销售订单明细").LoadFilter = "[销售订单编号] In('" & s.Replace("|","','") & "')"
DataTables("销售订单明细").Load
有没有别的提速加载办法?
我把代码改成
DataTables("销售订单").LoadFilter="[销售订单日期] >= '" & Vars("stardate") & "'and [销售订单日期]<= '" & Vars("enddate") & "'"
' 对于SQL SERVER数据源,日期必须用单引号括起来:
DataTables("销售订单").Load
Dim ids As String
For Each dr As DataRow In DataTables("销售订单").DataRows
ids = ids & "," & dr("销售订单编号")
Next
ids= ids.Trim(",")
DataTables("销售订单明细").LoadFilter = "销售订单编号 In (" & ids & ")"
DataTables("销售订单明细").Load()
结果显示
这样试试:
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.Connection Name = "外部数据源名称" ‘注意:connection 和 Name之间没有空格
cmd.CommandText = "SELECT * From {销售订单} where = [销售订单日期] >= #" & Vars("stardate") & "#and [销售订单日期]<= #" & Vars("enddate") & "# "
dt = cmd.ExecuteReader()
Dim s As String = dt.GetComboListString("销售订单编号")
s = s.Replace("|","','")
cmd.CommandText = "SELECT * From {销售订单明细} where = [销售订单编号] In ('" & s & "')"
dt = cmd.ExecuteReader()
DataTables("销售订单明细").datasource = dt
DataTables("销售订单明细").datasource = dt
datasource不是DataTables的属性类