1

每次刷新时,我都会在页面上收到非常奇怪的错误,但不是每次。

我有一个简单的页面打印出数据如下:

后端(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>

代码与上面一样简单,但每次刷新都会显示以下错误。 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次刷新时,列名以中文打印。

楤
捡瑥杯特
瑩瑬�
瑩瑬敃�
捯湴敮�
捯湴敮瑃�

我已经为此奋斗了一段时间,请帮忙。谢谢。

4

1 回答 1

1

非常感谢各位的关心。最后,我找到了导致它的原因。正如 Eggyal 指出的那样,它让我意识到数据库出了点问题。

我也有包含中文标题的 content_mgr 类别表。在该类别表中,中文字段被创建为“ucs2_general_ci”。一旦我将其更改为“utf8_general_ci”,问题就解决了。

于 2012-05-30T23:49:29.343 回答