C# LINQ to DataTable-获取DataTable问题(CopyToDataTable)中的查询值
我的目标是完成连接操作,并且查询值必须存储在Datatable中C# LINQ to DataTable-获取DataTable问题(CopyToDataTable)中的查询值,c#,linq,datatable,linq-to-dataset,C#,Linq,Datatable,Linq To Dataset,我的目标是完成连接操作,并且查询值必须存储在Datatable中 var query = from db_data1 in DBData1.AsEnumerable() join cust_data1 in DBData2.AsEnumerable() on db_data1.Field<string>("FULLNAME").Trim() equals cust_data1.Field<string>
var query = from db_data1 in DBData1.AsEnumerable()
join cust_data1 in DBData2.AsEnumerable()
on db_data1.Field<string>("FULLNAME").Trim() equals
cust_data1.Field<string>("Name").Trim()
where
cust_data1.Field<string>("Apartment").Trim() == db_data1.Field<string>("SERVICE_APARTMENT").Trim()
&& cust_data1.Field<string>("Name").Trim() == db_data1.Field<string>("FULLNAME").Trim()
select new
{
Name = db_data1.Field<string>("FULLNAME"),
ACCOUNT_NUMBER = db_data1.Field<string>("ACCOUNT_NUMBER")
};
DataTable merged;
if (query.Any())
merged = query.**CopyToDataTable**();
else
merged = DBData1.Clone();
但在这里我得到了COPYTODATABLE函数的错误
类型“AnonymousType1”不能用作
泛型类型或方法
'System.Data.DataTableExtensions.CopyToDataTableSystem.Collections.Generic.IEnumerable'。
没有从“AnonymousType1”到的隐式引用转换
“System.Data.DataRow”
如何解决此问题?查询返回匿名类型的IEnumerable,因为您正在使用select new{}创建一个无类型序列
如果您选择使用确定的目标类型(即,选择CustDataRow),您将能够使用CopyToDataTable,尽管出于您的目的,这可能需要您创建一个帮助对象。刚刚意识到这确实解释得很好。谢谢Rahul^^^