Pergunta

Eu estou trabalhando em um site ASP.NET onde eu estou usando um asp: repetidor com paginação feito através de um code-behind VB.NET arquivo. Estou tendo problemas com a conexão de banco de dados embora. Tanto quanto eu posso dizer, a paginação está funcionando, mas não posso obter os dados para ter certeza.

O banco de dados é um banco de dados Microsoft Access. A função que deve estar acessando o banco de dados é:

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

O 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>
Foi útil?

Solução 3

Problema resolvido! Praticamente batendo a cabeça contra a parede agora a considerar como era simples. Foi o Page_Load, eu mudei para o seguinte:

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

E pronto, ele funciona!

Além disso, para a seqüência de conexão, acabei usando:

Provider = Microsoft.Jet.OLEDB.4.0; Data Source = | DataDirectory | \ ArtDatabase.mdb

O que funciona muito bem.

Obrigado por sua ajuda e caras de entrada!

Outras dicas

Se precisar de ajuda com cadeias de ligação, este site é o último recurso!

http://www.connectionstrings.com/

Você está criando a string de conexão à mão? Se assim for ... não faça isso! Use o Server Explorer para criar sua conexão. Em seguida, selecione-o e vá para a janela Propriedades, e você verá a string de conexão que utiliza.

Além disso, usando o Server Explorer permitirá que você navegue através de suas mesas e até mesmo abri-los para ver seus dados. Pelo menos isso vou te dizer com certeza se os seus dados estão acessíveis.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top