2008-10-12 39 views
0

我正在使用asp:repeater通过VB.NET代码隐藏文件完成分页的ASP.NET网站。虽然我在数据库连接时遇到了问题。据我所知,分页正在工作,但我无法确定数据。ASP.NET OleDbConnection问题

该数据库是Microsoft Access数据库。应该访问数据库的功能是:

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> 
+0

嗨马特你得到一个错误或没有出​​现什么? 你可以尝试使用autogenerate = true绑定到datagrid,看看返回的是什么 – alexmac 2008-10-12 09:49:24

+0

我没有收到错误,只是没有出现。 – Matt 2008-10-13 12:29:44

+0

如果我给中继器一个DataSourceID =“AccessDataSource1”,它会很好地提取数据,但它不支持我需要的分页。 – Matt 2008-10-13 12:35:04

回答

0

问题解决!现在考虑它是多么简单,几乎把我的头撞在墙上。这是Page_Load,我把它改为:

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

瞧,它的工作原理!

此外,连接字符串,我最终使用:

提供商= Microsoft.Jet.OLEDB.4.0;数据源= | DataDirectory目录| \ ArtDatabase.mdb

伟大的工程。

感谢您的帮助和输入!

0

你手工创建的连接字符串?如果是的话......不要这样做!使用服务器资源管理器创建您的连接。然后突出显示它并转到“属性”窗口,您将看到它使用的连接字符串。

此外,使用服务器资源管理器可让您浏览您的表格,甚至打开它们查看您的数据。至少会告诉你是否可以访问你的数据。