老师好! 一个SQL Server外部数据表有500W行, 我在窗口里用SQLTable类型表,Select语句:Select [物料编码],[物料描述],[计量单位],[备注],[_Identify] Fr om {ERP物料编码}
窗口AfterLoad事件代码如下:
'生成目录树
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT 大类,中类,小类,品名 Fr om {ERP物料编码}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt,"大类|中类|小类|品名")
trv.Nodes.Insert("加载所有数据",0)
'加载第一页数据
With DataTables("窗口1_Table1")
.LoadFilter = "" '清除加载条件
.LoadPage = 0 '加载第一页
.LoadTop = 25 '每页25行
.Load()
e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
End With
当打开运行窗口时报错
此主题相关图片如下:qq截图20191027213809.jpg
然后就超时。
我更改Select语句:Select top 10 [物料编码],[物料描述],[计量单位],[备注],[_Identify] Fr om {ERP物料编码}
这样就能打开窗口不报错了,但感觉比较慢,大约要30秒,点击节点后大约10秒刷新。
请问老师:
1、为什么Select语句加了top 10后不报错,和窗口代码.LoadTop = 25 不冲突吗?
2、此项目主要用途是从第4个节点下查找需要的物料编码和对应行内容到另一个表,是否有更好的方式(速度流畅)解决方案?