【问题标题】:ASP.NET OleDbConnection ProblemASP.NET OleDbConnection 问题
【发布时间】:2008-10-12 09:47:16
【问题描述】:

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

该数据库是 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>

【问题讨论】:

  • 嗨,马特,您收到错误消息还是什么也没出现?您可以尝试使用 autogenerate=true 绑定到数据网格以查看返回的内容
  • 我没有收到错误,只是没有出现。
  • 如果我给转发器一个 DataSourceID="AccessDataSource1" 它可以很好地提取数据,但它不支持我需要的分页。

标签: asp.net vb.net repeater paging oledbconnection


【解决方案1】:

如果您需要有关连接字符串的帮助,此站点是终极资源!

http://www.connectionstrings.com/

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我不知道!谢谢你,虽然它并没有真正解决我的问题。使用它给我的连接字符串,我仍然没有显示任何数据
    【解决方案3】:

    问题解决了!现在考虑到它有多简单,我几乎要把我的头撞在墙上。原来是Page_Load,我改成下面这样:

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

    瞧,它有效!

    另外,对于连接字符串,我最终使用了:

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

    效果很好。

    感谢您的帮助和意见!

    【讨论】:

      猜你喜欢
      • 2017-08-31
      • 1970-01-01
      • 2012-04-07
      • 2012-11-01
      • 2010-12-20
      • 2010-09-21
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多