ASP.NET OleDbConnection Problema
-
10-07-2019 - |
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>
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!
¿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.