C # champ -A ou bien avec le nom « RÉSUMÉ » n'a pas été trouvé sur la source de données sélectionnée

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

  •  27-10-2019
  •  | 
  •  

Question

Je suis face à la question dans la liaison gridview lorsque l'un de l'étiquette dans le Nodelist XML est manquant. Je reçois ci-dessous un message d'erreur:

Un champ ou une propriété avec le nom « RÉSUMÉ » n'a pas été trouvé sur la source de données sélectionnée.

S'il vous plaît me aider quelqu'un avec la façon de gérer les valeurs manquantes pendant la liaison afin que je puisse afficher un message de texte personnalisé tels que: « Aucun résumé disponible »

J'utilise la version .NET 3.5 et liant le GridView à partir des données XML.

ASPX Code:

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

Derrière le code:

Dans l'objet de réponse Je reçois les données 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();
Était-ce utile?

La solution

Cette erreur est becuase la DataTable's DataRow ont le résumé Indifférent Fume de colonne (AZKSUMMARY) bien sûr. Ceci peut être résolu dans votre méthode ConvertToDataTable. Là-dedans, je suppose que vous créez la colonne pour tous les noeuds existants.

Vous devez créer les 4 colonnes pour chaque ligne, même si elle existe pas dans le fichier xml. Si elle sort pas, vous pouvez ajouter la valeur que vous voulez, par exemple « Aucun résumé disponible ».

Encore mieux serait de mettre en œuvre un objet avec 4 propriétés et les mettre dans la liste. Mais bâton pour datatable si vous le souhaitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top