Pregunta

Estoy trabajando en un sitio web ASP.NET donde estoy usando un asp: repetidor con paginación realizada a través de un archivo de código subyacente VB.NET. Aunque tengo problemas con la conexión de la base de datos. Por lo que puedo decir, la paginación está funcionando, pero no puedo obtener los datos para estar seguro.

La base de datos es una base de datos de Microsoft Access. La función que debería acceder a la base de datos es:

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

El ASP.NET es:

<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>
¿Fue útil?

Solución 3

¡Problema resuelto! Casi golpeando mi cabeza contra la pared ahora considerando lo simple que era. Era el Page_Load, lo cambié a lo siguiente:

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

¡Y listo, funciona!

Además, para la cadena de conexión, terminé usando:

Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = | DataDirectory | \ ArtDatabase.mdb

Que funciona muy bien.

¡Gracias por su ayuda y comentarios!

Otros consejos

¡Si necesita ayuda con las cadenas de conexión, este sitio es el mejor recurso!

http://www.connectionstrings.com/

¿Estás creando la cadena de conexión a mano? Si es así ... ¡no hagas eso! Use el Explorador de servidores para crear su conexión. Luego resáltelo y vaya a la ventana Propiedades, y verá la cadena de conexión que usa.

Además, el uso del Explorador de servidores le permitirá navegar por sus tablas e incluso abrirlas para ver sus datos. Al menos eso le dirá con certeza si sus datos son accesibles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top