ページを更新するたびに非常に奇妙なエラーが発生しますが、毎回ではありません。
次のようにデータを印刷する簡単なページがあります。
バックエンド (aspx.cs)
string sql="Select * from content_mgr_multiple where category = '1' limit 0, 1";
DataView dv = DBAccess.GetListView(sql);
this.ResultList.DataSource = dv;
this.ResultList.DataBind();
フロントエンド(aspx)
<asp:Repeater ID="ResultList" runat="server">
<ItemTemplate>
<%# Eval("content") %>
</ItemTemplate>
</asp:Repeater>
コードは上記のように単純に機能しますが、1 回おきの更新で次のエラーが表示されます。 DataBinding: 'System.Data.DataRowView' には、'content' という名前のプロパティが含まれていません。
ページを 6 回更新するとします。2 回目、4 回目、6 回目は問題ありませんが、1 回目、3 回目、5 回目は上記のエラーが表示されます。
次のようにトラブルシューティングを試みました。その DataSource の列名を出力するコードを入れます。
string sql="Select * from content_mgr_multiple where category = '1' limit 0, 1";
DataView dv = DBAccess.GetListView(sql);
foreach (DataColumn dr in dv.Table.Columns)
{
Response.Write(dr.ColumnName + "<BR>");
}
this.ResultList.DataSource = dv;
this.ResultList.DataBind();
2 回目、4 回目、6 回目の更新では、列名が英語で出力されます。
id
category
title
titleCh
content
contentCh
1 回目、3 回目、5 回目の更新で、列名が中国語で出力されます。
楤
捡瑥杯特
瑩瑬�
瑩瑬敃�
捯湴敮�
捯湴敮瑃�
私はしばらくこれと戦ってきました。助けてください。ありがとう。