以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询显示几十行数据 效率问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=11242)

--  作者:zharen110
--  发布时间:2011/7/14 15:49:00
--  查询显示几十行数据 效率问题
看看我下面这段代码,能运行 用sql语句查出几十条数据花了3秒时间 这太慢了 我不知道问题出在什么地方了 请高手帮忙找找
Dim tp1 As WinForm.DateTimePicker = Forms("小计").Controls("DateTimePicker1")
Dim tp2 As WinForm.DateTimePicker = Forms("小计").Controls("DateTimePicker2")
Dim box As WinForm.TextBox = Forms("小计").Controls("TextBox1")

box.Value = Nothing
Dim sc As new SQLCommand
sc.C
sc.CommandText = "select 规格名称 ,sum(入库数) as 合计 from rk where 入库时间 between \'" & tp1.Value & " \' and \'" & tp2.Value & "\' group by 规格名称"
DataTables("入库小计").DeleteFor(True)
Dim dt As DataTable = sc.ExecuteReader
If dt.DataRows.Count > 0 Then
    For i As Integer = 0 To dt.DataRows.Count - 1
        DataTables("入库小计").AddNew
        Tables("入库小计").Rows(i)("规格名称") = dt.DataRows(i)("规格名称")
        Tables("入库小计").Rows(i)("合计") = dt.DataRows(i)("合计")
    Next
    
End If
[此贴子已经被作者于2011-7-14 15:53:22编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/7/14 15:54:00
--  

你这样搞得太复杂,用Fill不是很好吗:

 

Dim tp1 As WinForm.DateTimePicker = Forms("小计").Controls("DateTimePicker1")
Dim tp2 As WinForm.DateTimePicker = Forms("小计").Controls("DateTimePicker2")
DataTables("入库小计").Fill("select 规格名称 ,sum(入库数) as 合计 from rk where 入库时间 between \'" & tp1.Value & " \' and \'" & tp2.Value & "\' group by 规格名称","数据源名称",True)
 
多看看帮助中关于动态加载的部分,从这里开始:
 
 
[此贴子已经被作者于2011-7-14 15:54:53编辑过]

--  作者:zharen110
--  发布时间:2011/7/14 15:55:00
--  
哈哈 对 多谢指点