Question

Je travaille sur un site Web ASP.NET où j'utilise un répéteur asp: repeater avec une pagination effectuée via un fichier code-behind VB.NET. J'ai des problèmes avec la connexion à la base de données. Autant que je sache, la pagination fonctionne, mais je ne parviens pas à obtenir des données fiables.

La base de données est une base de données Microsoft Access. La fonction devant accéder à la base de données est la suivante:

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

ASP.NET est:

<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>
Était-ce utile?

La solution 3

Problème résolu! Je me cognais presque la tête contre le mur, maintenant que c'était simple. C'était le Page_Load, je l'ai changé comme suit:

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

Et voila, ça marche!

De plus, pour la chaîne de connexion, j'ai fini par utiliser:

Fournisseur = Microsoft.Jet.OLEDB.4.0; Source de données = | Répertoire de données | \ ArtDatabase.mdb

Ce qui fonctionne très bien.

Merci pour votre aide et votre contribution, les gars!

Autres conseils

Si vous avez besoin d'aide avec les chaînes de connexion, ce site est la ressource ultime!

http://www.connectionstrings.com/

Créez-vous la chaîne de connexion à la main? Si c'est le cas ... ne fais pas ça! Utilisez l'explorateur de serveurs pour créer votre connexion. Puis mettez-le en surbrillance et accédez à la fenêtre Propriétés. La chaîne de connexion utilisée est affichée.

En outre, l’explorateur de serveurs vous permet de parcourir vos tables et même de les ouvrir pour afficher vos données. Au moins, cela vous dira avec certitude si vos données sont accessibles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top