asp.net分页代码,执行偶尔会出现问题,并且执行效率非常低,请求帮助改进一下。
Public Function ReadAllNews(ByVal rPage As Integer) As String
ConnectionSQL()
ds.Clear()
SQL = "Select * from [News_Table] order by Tim desc,id asc"
mySqlAdapter = New SqlDataAdapter(SQL, Conn)
mySqlAdapter.Fill(ds, "News_Table")
Dim pagecounts As Integer = ds.Tables("News_Table").Rows.Count
Dim RCount As Integer = pagecounts
If RCount = 0 Then
ReadAllNews = "未找到新闻数据。"
Exit Function
End If
Dim i As Integer = 1
Dim pagesizes As Integer = 20
Dim curpage = rPage
Dim a, b, sa, page As Integer
a = Int(pagecounts / pagesizes)
b = pagecounts / pagesizes
If a < b Then
pagecounts = a + 1
Else
pagecounts = b
End If
If curpage < 1 Or curpage > pagecounts Then
page = 1
sa = 1
Else
page = curpage
sa = (curpage - 1) * pagesizes + 1
End If
CloseSQL()
ConnectionSQL()
ds.Clear()
mySqlAdapter = New SqlDataAdapter(SQL, Conn)
mySqlAdapter.Fill(ds, sa - 1, pagesizes, "News_Table")
For i = 0 To ds.Tables("News_Table").Rows.Count - 1
If ReadAllNews = "" Then
ReadAllNews = "<div><li class='newsl'>" & i + 1 + (rPage - 1) * 20 & ". <a href='" & ds.Tables("News_Table").Rows(i).Item("html") & "' target='_blank'>" & ds.Tables("News_Table").Rows(i).Item("topic") & "</a></li><li class='newsr'>" & Year(ds.Tables("News_Table").Rows(i).Item("tim")) & "年" & Month(ds.Tables("News_Table").Rows(i).Item("tim")) & "月" & Day(ds.Tables("News_Table").Rows(i).Item("tim")) & "日 </li></div>"
Else
ReadAllNews = ReadAllNews & vbCrLf & "<div><li class='newsl'>" & i + 1 + (rPage - 1) * 20 & ". <a href='" & ds.Tables("News_Table").Rows(i).Item("html") & "' target='_blank'>" & ds.Tables("News_Table").Rows(i).Item("topic") & "</a></li><li class='newsr'>" & Year(ds.Tables("News_Table").Rows(i).Item("tim")) & "年" & Month(ds.Tables("News_Table").Rows(i).Item("tim")) & "月" & Day(ds.Tables("News_Table").Rows(i).Item("tim")) & "日 </li></div>"
End If
Next
'====分页链接
ReadAllNews = ReadAllNews & "<div>总共 " & RCount & " 条 本页 " & ds.Tables("News_Table").Rows.Count & " 条 第 " & rPage & " 页/共 " & pagecounts & " 页"
If rPage > 1 Then
ReadAllNews = ReadAllNews & vbCrLf & " <a href='?page=1'>首页</a> <a href='?page=" & rPage - 1 & "'>上一页</a>"
Else
ReadAllNews = ReadAllNews & vbCrLf & " 首页 上一页"
End If
If rPage < pagecounts Then
ReadAllNews = ReadAllNews & " <a href='?page=" & rPage + 1 & "'>下一页</a> <a href='?page=" & pagecounts & " '>末页</a> "
Else
ReadAllNews = ReadAllNews & " 下一页 末页"
End If
ReadAllNews = ReadAllNews & "</div>"
CloseSQL()
End Funct
以上是我的函数代码,分页显示有时正常,有时出现,出现的错误有:对象未引用到实例,致命的内部错误,运行超时等,我发现,只要不调用这个函数,程序运行非常正常,效率也挺好,程序的执行时间在几十毫秒到几百之间,调用了这个函数,执行时间立即要变成几千,甚至上万毫秒,根据断点检查发现,问题在mySQLAdapter.fill这个地方,上述的代码在我的程序其他函数里也有,其他的函数运行完全正常。
请指点一下。