C# -A Campo o propiedad con el nombre 'Resumen' no se encontró en la fuente de datos seleccionada

StackOverflow https://stackoverflow.com/questions/8848963

  •  27-10-2019
  •  | 
  •  

Pregunta

Me enfrento a un problema para vincular la vista de gridView cuando falta una de las etiquetas en el XML nodelist. Estoy recibiendo un mensaje de error a continuación:

No se encontró un campo o propiedad con el nombre 'Resumen' en la fuente de datos seleccionada.

Por favor, alguien me ayude con cómo manejar los valores faltantes durante la vinculación para que pueda mostrar un mensaje de texto personalizado como: "No hay resumen disponible"

Estoy usando .NET versión 3.5 y vinculando el GridView de los datos XML.

Código 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>

Código detrás:

En el objeto de respuesta estoy obteniendo los datos 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();
¿Fue útil?

Solución

Este error es porque el DataTable's Datow no tiene el resumen de la columna (Azksummary), por supuesto. Esto se puede resolver en su método ConvertTodatatable. Allí supongo que está creando una columna para todos los nodos existentes.

Debe crear las 4 columnas para cada fila, incluso si no existe en el archivo XML. Si no sale, puede agregar el valor que desea, por ejemplo, "no hay resumen disponible".

Aún mejor sería implementar un objeto con 4 propiedades y ponerlas en la lista. Pero quédese con el datos si le gusta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top