每次排序都调用sql,能否用dataview,经过一次排序后,后面执行排序时都不用执行sql?
目前每次排序都调用了sql语句,只是加了一个判断
If Session("qcm_com_query_SortExpression") <> "" Then
sqlstr += " ORDER BY " & Session("qcm_com_query_SortExpression") & " " & Session("qcm_com_query_SortOrder")
End If
这样的话是不是每排序一次都要和数据库进行一次交互,会不会很浪费资源,我查了关于dataview的使用,是可以在本地内存中排序,这样是不是就不用每次都和数据库交互了?
点击BindDatas()查询事件,如下代码
..............
If Session("qcm_com_query_SortExpression") <> "" Then
sqlstr += " ORDER BY " & Session("qcm_com_query_SortExpression") & " " & Session("qcm_com_query_SortOrder")
End If
sqlstr += ")info_t"
viewstate("sqlstr") = sqlstr
Dim sqlda As New data_source.WebTao.Public.SqlServerData
Dim dt As DataTable
dt = sqlda.GetMytable(sqlstr)
pager.RecordCount = dt.Rows.Count
DataGrid3.DataSource = RCM.RCM.rcmShare.getParttable(dt, pager.PageSize * (pager.CurrentPageIndex - 1), pager.PageSize)
Me.DataGrid3.DataBind()
排序事件如下
Protected Sub DataGrid3_Sort(ByVal s As Object, ByVal e As DataGridSortCommandEventArgs) '排序
Dim sSortExpression As String, sSortOrder As String
sSortExpression = e.SortExpression.ToString()
sSortOrder = ""
Dim dv As DataView
SortRtn(sSortExpression, sSortOrder)
BindDatas()
End Sub
这里又执行了BindDatas(),这里是不是又和数据库交互了,怎么样使用dataview,使得效率最高,谢谢指教,解决给分