0

現在運用中の ASP.NET アプリケーションで問題に直面しています。SQL Server 2008 データベースと IIS 7.0 を使用しています。

私の問題は次のとおりです。私のウェブサイトはしばらくの間うまく動作していますが、しばらくすると「unhandlednException」がスローされます。例外メッセージは次のとおりです。

DataBinding: 'System.Data.DataRowView' には 'AddDate' という名前のプロパティが含まれていません。

しかし、データベースには「AddDate」という名前のフィールドがあります。

この例外はランダムに発生し、しばらくすると Web サイトが単独で正常に再実行されるか、アプリケーション プールをリサイクルしたときに発生します。

この動作の原因を見つけることができません。

この点で私を助けてください。前もって感謝します....

HTML コード:

    <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>

C# コード:

    DataTable dt = new DataTable();
    dt = ControlsDB.GetTableFromProc("GetNewsTitles", new string[] { "@Lang" }, new SqlDbType[] { SqlDbType.NVarChar }, new object[] { "En" }, conn);
    rptrNewsTitles.DataSource = dt;
    rptrNewsTitles.DataBind();

プロシージャから返されるフィールド:

SubjectID、SubjectTitle、SubjectDetails、AddDate、Category、ViewsNo、AddedBy、Tip、Active、SubjectLanguage、Photo、SubjectBrief、HotNews、Country、CountryID、CountryName、CountryComment、CountryFlag、Code、Active、Lang

ありがとうございました

4

1 に答える 1

1

可能性はいくらでもあります。ここにいくつかあります:

  1. プロシージャーに IF-THEN-ELSE ロジックなどの複雑なロジックがある場合、そのフィールドを省略したり、別のエイリアスを指定したりして SELECT を実行することがあります。

  2. ControlsDB.GetTableFromProc最初に a をインスタンス化 (new-ing) しDataTable、次に a から埋めることで機能する場合SqlDataAdapter(これは一般的な方法のようです)、さまざまな理由で (データベース ロックによるタイムアウトは非常に可能性の高い可能性です)、テーブルがそうではない可能性があります。 proc から満たされていますが、メソッドはまだDataTable. これによりDataTable、列のない が得られます。これにバインドしようとすると、確かにそのエラーがスローされます。

    これが発生するためには、 で発生した SQL エラーをキャッチして抑制する必要がありますがSqlDataAdapter.Fill、それでもDataTable.

于 2013-03-19T16:49:50.583 に答える