繁体   English   中英

C#-在所选数据源上找不到名称为“ SUMMARY”的字段或属性

[英]C# -A field or property with the name 'SUMMARY' was not found on the selected data source

当XML节点列表中的标签之一丢失时,我在绑定gridview时遇到问题。 我收到以下错误消息:

在所选数据源上找不到名称为“ SUMMARY”的字段或属性。

请有人帮我处理绑定过程中丢失的值,以便我可以显示自定义文本消息,例如:“无摘要”

我正在使用.NET 3.5版,并从XML数据绑定GridView。

ASPX代码:

            <asp:GridView ID="gvSystemX" runat="server" AutoGenerateColumns="False" AlternatingRowStyle-CssClass="even"
        CellPadding="4" Font-Names="Tahoma" Font-Size="Small" ForeColor="#333333" GridLines="None" EmptyDataText="Mayur">
        <RowStyle BackColor="#E3EAEB" />
        <Columns>
            <asp:BoundField HeaderText="TITLE" DataField="AZKTITLE" />
            <asp:BoundField HeaderText="DESCRIPTION" DataField="AZKSUMMARY" />
            <asp:BoundField HeaderText="SOURCE" DataField="AZKSOURCE" />
            <asp:BoundField HeaderText="DATABASE NAME" DataField="DREDBNAME" />
        </Columns>
        <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#7C6F57" />
        <AlternatingRowStyle CssClass="even"></AlternatingRowStyle>
    </asp:GridView>

背后的代码:

在响应对象中,我正在获取XML数据...

            XmlNamespaceManager nsMgr = new XmlNamespaceManager(response.NameTable);
            nsMgr.AddNamespace("autn", "http://schemas.autonomy.com/aci/");

            nodeList = response.SelectNodes("autnresponse/responsedata/autn:hit/autn:content/DOCUMENT", nsMgr);
            gvSystemX.DataSource = ConvertToDataTable(nodeList);
            gvSystemX.DataBind();

出现此错误是因为DataTable的DataRow当然没有列摘要(AZKSUMMARY)。 这可以在您的ConvertToDataTable方法中解决。 在这里,我假设您正在为所有现有节点创建列。

您必须为每行创建所有4列,即使该行在xml文件中不存在也是如此。 如果未退出,则可以添加所需的值,例如“无可用摘要”。

更好的方法是实现一个具有4个属性的对象,并将其放入列表中。 但是如果您愿意,请坚持使用数据表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM