C# -a campo o proprietà con il nome "Riepilogo" non è stato trovato sull'origine dati selezionata

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

  •  27-10-2019
  •  | 
  •  

Domanda

Sto affrontando un problema nel vincolare la gridview quando manca uno dei tag nel nodelist XML. Sto passando sotto il messaggio di errore:

Un campo o una proprietà con il nome "Riepilogo" non è stato trovato sull'origine dati selezionata.

Per favore qualcuno mi aiuti a come gestire i valori mancanti durante l'associazione in modo da poter visualizzare un messaggio di testo personalizzato come: "Nessun riepilogo disponibile"

Sto usando .NET versione 3.5 e vincolando GridView dai dati XML.

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

Codice dietro:

Nell'oggetto di risposta sto ottenendo i dati 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();
È stato utile?

Soluzione

Questo errore è perché il datarow del dati non ha ovviamente il riepilogo della colonna (Azksummary). Questo può essere risolto nel metodo convertitatabile. Dentro suppongo che tu stia creando colonna per tutti i nodi esistenti.

È necessario creare tutte e 4 le colonne per ogni riga anche se non esiste nel file XML. Se non esce puoi aggiungere il valore desiderato, ad esempio "nessun riepilogo disponibile".

Ancora meglio sarebbe implementare un oggetto con 4 proprietà e metterle in elenco. Ma attenersi al dati se ti piace.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top