0

私は ASP.NET Web サイトに取り組んでおり、VB.NET コード ビハインド ファイルを介してページングを行う asp:repeater を使用しています。ただし、データベース接続に問題があります。私が知る限り、ページングは​​機能していますが、確実なデータを取得できません。

データベースは 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>
4

3 に答える 3

1

接続文字列についてサポートが必要な場合は、このサイトが究極のリソースです。

http://www.connectionstrings.com/

于 2008-10-12T10:10:33.710 に答える
0

問題が解決しました!それがどれほど単純だったかを考えると、今では頭を壁にぶつけています。それは 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

これはうまくいきます。

助けてくれてありがとう!

于 2008-10-14T14:24:20.797 に答える
0

手動で接続文字列を作成していますか? もしそうなら...それをしないでください!サーバー エクスプローラーを使用して接続を作成します。次に、それを強調表示して [プロパティ] ウィンドウに移動すると、使用する接続文字列が表示されます。

また、サーバー エクスプローラーを使用すると、テーブルを参照したり、テーブルを開いてデータを表示したりすることもできます。少なくとも、データにアクセスできるかどうかは確実にわかります。

于 2008-10-13T01:38:26.257 に答える