Проблема ASP.NET OleDbConnection

Я работаю над веб-сайтом 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>

person Matt    schedule 12.10.2008    source источник
comment
Привет, Мэтт, ты получаешь сообщение об ошибке или ничего не появляется? Вы можете попробовать привязаться к сетке данных с autogenerate=true, чтобы увидеть, что возвращается   -  person alexmac    schedule 12.10.2008
comment
Я не получаю ошибку, просто ничего не появляется.   -  person Matt    schedule 13.10.2008
comment
Если я даю ретранслятору DataSourceID=AccessDataSource1, он нормально извлекает данные, но не поддерживает пейджинг, который мне нужен.   -  person Matt    schedule 13.10.2008


Ответы (3)


Если вам нужна помощь со строками подключения, этот сайт — лучший ресурс!

http://www.connectionstrings.com/

person Sklivvz    schedule 12.10.2008

Вы создаете строку подключения вручную? Если так... не делай этого! Используйте обозреватель серверов, чтобы создать подключение. Затем выделите его и перейдите в окно «Свойства», и вы увидите строку подключения, которую он использует.

Кроме того, использование обозревателя серверов позволит вам просматривать свои таблицы и даже открывать их для просмотра ваших данных. По крайней мере, это скажет вам наверняка, доступны ли ваши данные.

person Ryan Lundy    schedule 13.10.2008
comment
Я этого не знал! Спасибо за это, это действительно не решает мою проблему. Используя строку подключения, которую она мне дает, у меня все еще нет отображения данных. - person Matt; 13.10.2008

Проблема решена! В значительной степени бьюсь головой о стену, учитывая, насколько это было просто. Это был 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

Который отлично работает.

Спасибо за вашу помощь и участие, ребята!

person Matt    schedule 14.10.2008