我想对数据进行分页,我使用了datagird分页,没有问题
但是我不想使用DATAGIRD,我想自己写,<ASP:LABEL>随便放在网页的那上表格都行,这样就好了,请问做分页怎么做呢?
SQL SERVER
 Sub page_load()
    Dim con As String = "Data Source=MOFsdafT\dfgHfds435NN;initial catalog=ffffffffasfddasshjfghajfaafta55;persist security info=true;user id=sa;password=ufngrsgrsgereges"
    Dim cons As New System.Data.SqlClient.SqlConnection(con)
    cons.Open()
    Dim sql As String = "Select msid,mstitle from test"
    Dim mycmd As New System.Data.SqlClient.SqlCommand(sql, cons)
    Dim myrd As System.Data.SqlClient.SqlDataReader
    myrd = mycmd.ExecuteReader()
    Do While myrd.Read()
      lin.Text += Convert.ToString(myrd(0)) & "<p>"
    Loop
    myrd.Close()
    mycmd.Dispose()
    cons.Dispose()
  End Sub
<asp:label id="lin" runat="server"></asp:label>请问怎么分页呀

解决方案 »

  1.   

    <%@Page  Debug ="true"   Language="VB"  %>
    <%@Import Namespace="system" %>
    <%@Import Namespace ="system.data" %>
    <%@Import Namespace ="system.data.sqlclient" %>
     <script runat ="server" >
       Private da As SqlDataAdapter
       Private ds As DataSet
       Private dtSource As DataTable
       Private PageCount As Integer
       Private maxRec As Integer
       Private pageSize As Integer
       Private currentPage As Integer
       Private recNo As Integer
       Private Sub load_page(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
         Dim sql As SqlConnection = New SqlConnection("server=43564\t64;User id=sa;password=urty877uioui/'??5g5;database=dgfatafg45644456s")
         Dim da As New SqlDataAdapter("Select title,date From test order by date desc", sql)
         Dim ds As New DataSet
         Dim dTemp As DataTable
         Dim startR As Integer
         Dim endR As Integer
         Dim i As Integer
         Dim totalR As Integer
         Dim myp As Integer
         myi.Visible = False
         da.Fill(ds, "sql")
         dtSource = ds.Tables("sql")
         dTemp = dtSource.Clone()
         totalR = dtSource.Rows.Count
         pageSize = 5
         currentPage = 0
         PageCount = totalR / pageSize
         If Len(Trim(Request.Form("pmp"))) > 0 Then
           If IsNumeric(Request.Form("pmp")) Then
             myp = Request.Form("pmp")
           End If
         Else
           If IsNumeric(Request.QueryString("p")) Then
             myp = Request.QueryString("p")
           End If
         End If
         If Len(myp) = 0 Then myp = 1
         If IsNumeric(myp) = False Then myp = 1
         If myp < 1 Then myp = 1
         If myp > 32500 Then myp = 1
         If myp > PageCount Then myp = PageCount
         currentPage = myp
         currentPage = CInt(currentPage)
         If currentPage = PageCount Then
           endR = totalR
         Else
           endR = currentPage * pageSize
         End If
         startR = currentPage * 5 - 5
         For i = startR To endR - 1
           dTemp.ImportRow(dtSource.Rows(i))
         Next i
         tRecord.Text = "Total Rows:" & totalR & "<br>"
         tPage.Text = "Total Page:" & PageCount
         CurrentPagea.Text = "CurrentPage Number is:" & currentPage
         ii.Text = "the loop is:" & i
         myend.Text = "the end value" & startR & "to" & endR
         DataGrid1.DataSource = dTemp
         DataGrid1.DataBind()
         DataGrid1.ShowHeader = False
         DataGrid1.ShowFooter = False
         da.Dispose()
       End Sub
       Private Sub sNext(ByVal sender As System.Object, ByVal e As System.EventArgs)
         If currentPage < PageCount Then
           currentPage = currentPage + 1
         Else
           myi.Text = "Your already Last page,are you sure?"
           myi.Visible = True
         End If
         Return
       End Sub
       Private Sub sPre(ByVal sender As System.Object, ByVal e As System.EventArgs)
         If currentPage - 1 > 0 Then
           currentPage = currentPage - 1
         Else
           myi.Text = "Your already frist page,are you sure?"
           myi.Visible = True
         End If
       End Sub
       Private Sub sFrist(ByVal sender As System.Object, ByVal e As System.EventArgs)
         If currentPage - 1 > 0 Then
         End If
       End Sub
       Private Sub sLast(ByVal sender As System.Object, ByVal e As System.EventArgs)
         If currentPage <> PageCount Then
         End If
       End Sub     </script>
     <html>
     <head>
     </head>
     <body >
     <form runat ="server" id ="form1" >
     <table width ="100%"><tr><td>title</td><td>date</td></tr></table>
     <asp:DataGrid ID ="DataGrid1" Width ="100%"  AllowSorting ="false" runat ="server" BackColor ="Blue" ForeColor ="white" >
       <EditItemStyle BackColor="#80FFFF" />
       <PagerStyle BorderStyle="Dashed" />
       <AlternatingItemStyle BackColor="Transparent" />
     </asp:DataGrid><br />
       <asp:Button ID="Button1" runat="server" text="Next Page" OnClick ="sNext" />
       <asp:Button ID="Button2" runat="server" Text="Previous Page" OnClick ="sPre" />
       <asp:Button ID="Button3" runat="server" Text="Frist Page" OnClick ="sFrist" />
       <asp:Button ID="Button4" runat="server" Text="Last Page" OnClick ="sLast" /><br />
       <br />
       <asp:Label ID="tRecord" runat="server" Text="Label"></asp:Label>
       <asp:Label ID="tPage" runat="server" Text="Label"></asp:Label>
       <asp:Label ID="CurrentPagea" runat="server" Text="Label"></asp:Label>
       <asp:Label ID="ii" runat="server" Text="Label"></asp:Label>
       <asp:Label ID="myend" runat="server" Text="Label"></asp:Label>
       <asp:Label ID="Label6" runat="server" Text="Label"></asp:Label>
       <br />
       <asp:Label ID ="myi"  runat ="server" ></asp:Label>
         <br />
         <asp:TextBox ID ="pmp" runat =server ></asp:TextBox>
         <p>
         </p>
         <a href ="sql.aspx?p=<%response.write(currentPage-1)%>">previou</a>&nbsp;<a href ="sql.aspx?p=<% response.write(currentpage+1)%>">Next</a>
     <table width ="100%" cellpadding ="0" cellspacing ="0">
     <tr>
     <td>
     </td></tr>
     </table>
     </form>
     </body>
     </html>
    请问怎么改,这是我的源程序
    我不想用DATAGRID分页,请问有办法吗?
      

  2.   

    第一个可以读数据库的数据,第二个可以读,也可以分页,但是使用DATAGIRD不方便.帮帮忙啊
      

  3.   

    我做出来了,写出来拉,给大家做参考
    哈哈
    response.write(DataSource.row(integer).item(ExampleTableItemName))
    integer是你读数据的记录号(dataRow),item里面的实际例子的字段名字可以,最好用编号,从0开始即:
    'statement connection string to connect your database server(ms sql server)
    'why use private statement its,becuase security with microsoft method.
    private sub page_load(sender as object,e as eventArg)
    'sender is send data or perfrecen object,like send female to you
    'and eventarg is event,like onclick(microsoft method)
    private conStr as string="data source=...;User Id=..;password=....;initial catalog=databaseName;persist security info=true"
    private qu as string="Select value1,value2 from table"
    private sql as system.data.sqlclient.sqlconnection=new system.data.sqlclient.sqlconnection(conStr)
    private myCmd as system.data.sqlclient.sqlcommand=new system.data.sqlclient.sqlcommand(sql)
    private da as dataAdapter(myCmd,sql)
    private ds as data.dataset()
    private mytable as datatable
    private temptable as datatable
    da.fill(ds)
    mytable.datasource=ds.tables("table") 
    temptable=mytable.clone
    call myExecute()
    end sub
    private sub myExecute()
    dim tr as integer
    dim tp as integer
    dim pa as integer
    dim i as integer
    dim pz as integer
    dim ti as integer
    'get total record,like asp+vb
    tr=mytable.rows.count
    tp=pagecount
    if isnumeric(request.querystring("page")) then
    pa=request.querystring("page")
       if pa>32500 then pa=1
       if pa<1 then pa=1
       if pa>pagecount then pa=pagecount
       pa=cint(pa)
    else
    pa=1
    end if
    if currentPage=pagecount then
    ti=tr
    else
    ti=currentPage*pz
    end if
    currentPage=pa
    pagesize=8
    pz=pagesize
    //intro
    'my output results,and you can use <asp:label id> display results,and dynamic create asp label
    //intro
    for i=currentPage*pz-pz to ti
    temptable.importrow(mytable.rows(i))
    response.write(mytable.rows(i).item(0))
    next i 
    'release resource
    sql.close()
    mycmd.close()
    mytable.dispose()
    end sub
    response.write(DataSource.row(i).item(0))
    'i hope you can like it,my first edit asp.net,and use 3 days completed.