ASP.NET Problema OleDbConnection
-
10-07-2019 - |
Domanda
Sto lavorando su un sito Web ASP.NET in cui sto usando un asp: ripetitore con paging eseguito tramite un file code-behind VB.NET. Tuttavia, ho problemi con la connessione al database. Per quanto ne so, il paging funziona, ma non riesco a ottenere dati sicuri.
Il database è un database di Microsoft Access. La funzione che dovrebbe accedere al database è:
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 è:
<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>
Soluzione 3
Problema risolto! Praticamente ho sbattuto la testa contro il muro ora considerando quanto fosse semplice. Era il Page_Load, l'ho cambiato nel seguente:
Protected Sub Page_Load1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
doPaging()
End Sub
E voilà, funziona!
Inoltre, per la stringa di connessione, ho finito per usare:
Provider = Microsoft.Jet.OLEDB.4.0; Origine dati = | DataDirectory | \ ArtDatabase.mdb
Che funziona alla grande.
Grazie per il vostro aiuto e input ragazzi!
Altri suggerimenti
Se hai bisogno di aiuto con le stringhe di connessione, questo sito è l'ultima risorsa!
Stai creando manualmente la stringa di connessione? Se è così ... non farlo! Utilizzare Esplora server per creare la connessione. Quindi evidenzialo e vai alla finestra Proprietà, e vedrai la stringa di connessione che utilizza.
Inoltre, l'utilizzo di Esplora server ti permetterà di sfogliare le tue tabelle e persino aprirle per vedere i tuoi dati. Almeno questo ti dirà con certezza se i tuoi dati sono accessibili.