2012-01-13 15 views
1

XMLノードリストのタグの1つが見つからない場合、gridviewをバインドする際に問題が発生しました。C# - 'SUMMARY'という名前のフィールドまたはプロパティが選択されたデータソースで見つかりませんでした

名前が '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(); 
+0

XML、データバインディングコード、およびgridviewマークアップを投稿します。それがなければ、助けが不可能です。 – Glenn

+1

@Glenn XMLノーテリストのタグの1つが欠落しています*、短いOPで例外を処理したい場合 – V4Vendetta

+0

ああ、すみませんでした。 – Glenn

答えて

1

このエラーはDataTable'sのDataRow becuaseでありますもちろん列要約(AZKSUMMARY)はありません。これはConvertToDataTableメソッドで解決できます。ここでは、既存のすべてのノードの列を作成していると仮定します。

xmlファイルに存在しない場合でも、すべての行に対して4つの列をすべて作成する必要があります。終了しない場合は、「No Summary Available」など、必要な値を追加できます。

さらに4つのプロパティを持つオブジェクトを実装してリストに入れることもできます。しかし、あなたが好きなら、データテーブルに固執してください。

関連する問題