Повторитель не распознает источник данных с ошибкой во время выполнения «Неизвестный тип: System.Object value: SqlDataSource1» - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь запустить страницу Asp.NET с базой данных SQLite в качестве источника данных для повторителя.Источник данных Sqlite и dll-файлы, необходимые для его запуска, работают нормально, когда я использую их в программе Ado.NET, но показывают следующую ошибку на веб-странице (aspx) во время выполнения:

System.Web.HttpException
Property enroll not found in System.Char
Description: HTTP 500.Error processing request.

Details: Error processing request.

Stack Trace:

at System.Web.UI.DataBinder.GetPropertyValue (System.Object container, System.String propName) [0x00062] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.DataBinder.Eval (System.Object container, System.String expression) [0x0005d] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.TemplateControl.Eval (System.String expression) [0x0000b] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at ASP.about_aspx.__DataBind__bctrl_4 (System.Object sender, System.EventArgs e) [0x00013] in <cda3370d68f04a978aeb173db70786cf>:0 
at System.Web.UI.Control.OnDataBinding (System.EventArgs e) [0x00023] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Control.DataBind (System.Boolean raiseOnDataBinding) [0x00031] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Control.DataBind () [0x00000] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Control.DataBindChildren () [0x00030] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Control.DataBind (System.Boolean raiseOnDataBinding) [0x0003c] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Control.DataBind () [0x00000] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.WebControls.Repeater.DoItem (System.Int32 i, System.Web.UI.WebControls.ListItemType t, System.Object d, System.Boolean databind) [0x0004a] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.WebControls.Repeater.CreateControlHierarchy (System.Boolean useDataSource) [0x00078] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.WebControls.Repeater.OnDataBinding (System.EventArgs e) [0x00022] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.WebControls.Repeater.DataBind () [0x00000] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at WebApp.About.Page_Load (System.Object sender, System.EventArgs e) [0x00011] in <cf8ee0554811421f8f91feab1903c901>:0 
at System.Web.UI.Control.OnLoad (System.EventArgs e) [0x00023] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Control.LoadRecursive () [0x00028] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Page.ProcessLoad () [0x0004a] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Page.ProcessPostData () [0x00047] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Page.InternalProcessRequest () [0x001a1] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 
at System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) [0x0005f] in <6bd7a846f9aa4f0bae143ad0f36ee3bd>:0 

Я использую сервер XSP на Ubuntu 18.04.Я скачал сборки SQLite с: https://sourceforge.net/projects/sqlite-dotnet2/

При возникновении этой ошибки на консоли выводится следующая строка:

Unknown type: System.Object value: SqlDataSource1

Вот мой файл ASPX:

    <%@ Page Title="About" Language="C#" AutoEventWireup="true" src="About.aspx.cs" Inherits="WebApp.About"%>

<!DOCTYPE html>

<html lang="en">
<head runat="server">

</head>
<body>
    <p>Hello</p>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="Data Source=sample.db;Pooling=True;Max Pool Size=100;"
    SelectCommand="SELECT [name],[enroll] FROM student;"></asp:SqlDataSource>

    <table>
        <asp:Repeater runat="server" ID="Repeater1" DataSource="SqlDataSource1">
            <HeaderTemplate>
                <tr>
                    <td>Enroll</td>
                    <td>Name</td>
                </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td><%# Eval("enroll")%></td>
                    <td><%# Eval("name")%></td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>
    </table>

</body>
</html>

А вот соответствующий файл C #:

    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.SQLite;
    using System.IO;

    namespace WebApp
    {
      public class About : Page
      {
        protected void Page_Load(object sender, EventArgs e)
        {
          Repeater repeater = FindControl("Repeater1") as Repeater ;
          // Response.Write(Directory.GetCurrentDirectory());
          repeater.DataBind();
        }

      }
    }

Не использую ли я правильный способ привязки источника данных?Или файл базы данных неправильно указан?Файл базы данных находится в том же каталоге, что и файлы .aspx и .cs, а сборки находятся в папке с именем «bin».Используя недопустимые имена сборок, я проверил, что сборки для SQLite используются во время компиляции.

...