Problème ASP.NET OleDbConnection
-
10-07-2019 - |
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>
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!
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.