Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据绑定:“System.Data.DataRowView”不包含名为“AddDate”的属性_C#_Asp.net_Sql Server 2008 - Fatal编程技术网

C# 数据绑定:“System.Data.DataRowView”不包含名为“AddDate”的属性

C# 数据绑定:“System.Data.DataRowView”不包含名为“AddDate”的属性,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,我在正在生产的ASP.NET应用程序中遇到了一个问题。我正在使用SQL Server 2008数据库和IIS 7.0 我的问题是:我的网站在一段时间内运行良好,但在一段时间后,它抛出了一个“未处理的异常”。异常消息如下所示 数据绑定:“System.Data.DataRowView”不包含名为“AddDate”的属性 但是,数据库中有一个名为“AddDate”的字段 此异常是随机发生的,过了一段时间后,网站会自动重新正常运行,或者当我回收应用程序池时 我无法找出这种行为的原因 在这方面请帮助我。

我在正在生产的ASP.NET应用程序中遇到了一个问题。我正在使用SQL Server 2008数据库和IIS 7.0

我的问题是:我的网站在一段时间内运行良好,但在一段时间后,它抛出了一个“未处理的异常”。异常消息如下所示

数据绑定:“System.Data.DataRowView”不包含名为“AddDate”的属性

但是,数据库中有一个名为“AddDate”的字段

此异常是随机发生的,过了一段时间后,网站会自动重新正常运行,或者当我回收应用程序池时

我无法找出这种行为的原因

在这方面请帮助我。提前谢谢

HTML代码:

从过程返回的字段:

主题、主题标题、主题详细信息、添加日期、类别、视图否、添加人、提示、活动、主题语言、照片、主题简介、热门新闻、国家、国家ID、国家名称、国家评论、国家标志、代码、活动、语言


谢谢

有很多种可能性。以下是一些:

如果您的过程具有复杂的逻辑,包括If-THEN-ELSE逻辑,则您可能偶尔会执行一个省略该字段的SELECT,或者为其指定一个不同的别名

如果ControlsDB.GetTableFromProc首先实例化一个新的数据表,然后从SqlDataAdapter填充它,这似乎是一种常见的做法,由于许多原因,由于数据库锁定导致的超时很可能是表没有从proc中填充,但方法仍然返回DataTable。这将为您提供一个没有列的DataTable,如果您试图绑定到它,它肯定会抛出该错误

为了实现这一点,您需要捕获并抑制在SqlDataAdapter.Fill上发生的SQL错误,但仍然返回DataTable

    <asp:Repeater ID="rptrNewsTitles" runat="server">
    <ItemTemplate>
    <li class="news-item"><font style="font: 11px 'verdana'; color:#b5202b"><%#(Convert.ToDateTime(Eval("AddDate")).ToUniversalTime().Equals(DateTime.Now.ToUniversalTime())) ? " " + Convert.ToDateTime(Eval("AddDate")).ToUniversalTime().ToShortTimeString() : " " + Convert.ToDateTime(Eval("AddDate")).ToString("dd MMM yyyy")%> : </font><a href='showsubject.aspx?id=<%# Eval("subjectid")%>' style="text-decoration:none;"><%#Eval("SubjectTitle") %></a></li>
    </ItemTemplate>
    </asp:Repeater>
    DataTable dt = new DataTable();
    dt = ControlsDB.GetTableFromProc("GetNewsTitles", new string[] { "@Lang" }, new SqlDbType[] { SqlDbType.NVarChar }, new object[] { "En" }, conn);
    rptrNewsTitles.DataSource = dt;
    rptrNewsTitles.DataBind();