Я пытаюсь запустить страницу 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 используются во время компиляции.