asp.netvb.netpaginationrepeateroledbconnection

ASP.NET OleDbConnection Problem


I'm working on an ASP.NET website where I am using an asp:repeater with paging done through a VB.NET code-behind file. I'm having trouble with the database connection though. As far as I can tell, the paging is working, but I can't get the data to be certain.

The database is a Microsoft Access database. The function that should be accessing the database is:

Dim pagedData As New PagedDataSource

Sub Page_Load(ByVal obj As Object, ByVal e As EventArgs)
    doPaging()
End Sub

Function getTheData() As DataTable
    Dim DS As New DataSet()
    Dim strConnect As New OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0;Data Source=App_Data/ArtDatabase.mdb")
    Dim objOleDBAdapter As New OleDbDataAdapter("SELECT ArtID, FileLocation, Title, UserName, ArtDate FROM Art ORDER BY Art.ArtDate DESC", strConnect)
    objOleDBAdapter.Fill(DS, "Art")

    Return DS.Tables("Art").Copy
End Function

Sub doPaging()
    pagedData.DataSource = getTheData().DefaultView
    pagedData.AllowPaging = True
    pagedData.PageSize = 2

    Try
        pagedData.CurrentPageIndex = Int32.Parse(Request.QueryString("Page")).ToString()
    Catch ex As Exception
        pagedData.CurrentPageIndex = 0
    End Try

    btnPrev.Visible = (Not pagedData.IsFirstPage)
    btnNext.Visible = (Not pagedData.IsLastPage)

    pageNumber.Text = (pagedData.CurrentPageIndex + 1) & " of " & pagedData.PageCount

    ArtRepeater.DataSource = pagedData
    ArtRepeater.DataBind()
End Sub

The ASP.NET is:

<asp:Repeater ID="ArtRepeater" runat="server">
    <HeaderTemplate>
        <h2>Items in Selected Category:</h2>
    </HeaderTemplate>  
    <ItemTemplate>
        <li>
            <asp:HyperLink runat="server" ID="HyperLink"
                NavigateUrl='<%# Eval("ArtID", "ArtPiece.aspx?ArtID={0}") %>'>
                <img src="<%# Eval("FileLocation") %>"
                    alt="<%# DataBinder.Eval(Container.DataItem, "Title") %>t"/> <br />
                <%# DataBinder.Eval(Container.DataItem, "Title") %>
            </asp:HyperLink>
        </li>
    </ItemTemplate>
</asp:Repeater>

Solution

  • Problem solved! Pretty much banging my head against the wall now considering how simple it was. It was the Page_Load, I changed it to the following:

    Protected Sub Page_Load1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        doPaging()
    End Sub
    

    And voila, it works!

    Also, for the connection string, I ended up using:

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ArtDatabase.mdb

    Which works great.

    Thanks for your help and input guys!