簡體   English   中英

使用 linq 將列表結果轉換為數據表?

[英]Convert list result to datatable using linq?

使用 linq 將列表結果轉換為數據表?

我收到以下錯誤,但我的數據表結果中存在候選 ID。

A field or property with the name 'Candidate ID' was not found on the selected data source.

下面是我的代碼。 我正在嘗試將結果數據綁定到 gridview 但錯誤即將到來。

    var m_strFilePath = "webserviceurl";

    string xmlStr;
    using (var wc = new WebClient())//using Web client downloading xml string  from WEB API
    {
        xmlStr = wc.DownloadString(m_strFilePath);
    }
    DataSet ds = new DataSet();
    ds = ConvertXMLToDataSet(xmlStr);
    DataTable dt = new DataTable();
    dt = ds.Tables["FL"];



 List<DataTable> result = dt.AsEnumerable().Where(x => x.Field<int>("row_Id") == 0)
     .GroupBy(x => x.Field<int>("row_Id"))
     .Select(grp => grp.CopyToDataTable())
     .ToList();
       GridView1.DataSource = result;
       GridView1.DataBind();

下面是 gridview 設計代碼。

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" GridLines="None" CssClass="table table-bordered table-striped" Width="100%" >
     <Columns>
         <asp:BoundField DataField="Candidate ID" HeaderText="Id" />

         <asp:TemplateField HeaderText="Action">
             <ItemTemplate>
                 <asp:LinkButton ID="lnkbtn_viewdetails" runat="server" OnClick="lnkbtn_viewdetails_Click" CssClass="btn bg-light-blue-active">View Details</asp:LinkButton>
             </ItemTemplate>
         </asp:TemplateField>
     </Columns>
     <EmptyDataTemplate>
         <span style="color: red; font-size: 18px; font-weight: 600; text-align: center; padding-left: 355px;">No records for the entered search details </span>
     </EmptyDataTemplate>
 </asp:GridView>

下面是結果數據表數據。

在此處輸入圖片說明

我認為您的 linq 查詢將返回DataRow而不是DataTable的列表。 所以我認為它應該是List<DataRow> result = ...

然后:

DataTable newDt = new DataTable();

For(i = 0; i < result.count; i++)
    newDT.add(result[i]);

然后設置DataGridView

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM