C# 使用linq将列表结果转换为数据表?

C# 使用linq将列表结果转换为数据表?,c#,asp.net,database,linq,webforms,C#,Asp.net,Database,Linq,Webforms,使用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

使用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();
var m_strFilePath=“webserviceurl”; 字符串xmlStr; 使用(var wc=new WebClient())//使用Web客户端从Web API下载xml字符串 { xmlStr=wc.DownloadString(m_strFilePath); } 数据集ds=新数据集(); ds=转换XMLTODATASET(xmlStr); DataTable dt=新的DataTable(); dt=ds.表格[“FL”]; 列表结果=dt.AsEnumerable()。其中(x=>x.Field(“行Id”)==0) .GroupBy(x=>x.Field(“行Id”)) .Select(grp=>grp.CopyToDataTable()) .ToList(); GridView1.DataSource=结果; 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查询将返回
数据行的列表,而不是
数据表的列表。
所以我认为应该是
List result=…

然后:

DataTable newDt = new DataTable();

For(i = 0; i < result.count; i++)
    newDT.add(result[i]);
DataTable newDt=newdatatable();
对于(i=0;i

然后设置
DataGridView

在该LinQ上,您实际在哪里过滤/使用任何形式的“候选者ID”?您有3列:
val
FL\u Text
行Id
。看起来您要查找的“候选ID”位于
val
内部,而不是作为列/属性的“候选ID”本身。这就是它抱怨的原因。在绑定字段的数据字段中指定的字段名中是否有空格??我怀疑。我也绑定了val,但有错误。@gonzo345我已经以图像的形式显示了结果数据表,每个想法都很好@在所选数据源上找不到名为“val”的GaganDeepA字段或属性。将val添加为列后,也会出现错误@Gonzo345我现在用的是一部很差的智能手机,但当我到了电脑前,我会完成它。