【发布时间】:2014-05-28 01:36:50
【问题描述】:
我目前想从具有各种字段的 DataTable 对象中选择各种记录,但我想排除其 CustomerID 存在于另一个 DataTable 中的记录。或多或少类似于在 SQL 中使用“Except”或“NOT IN”子句。在 SQL 中是
SELECT * FROM Table1 WHERE CustomerID Not In (SELECT CustomerID FROM Table2)
我想在另一个 DataTable 中设置结果。
这就是我所拥有的:
var test = (from dt1 in lastMonthFunded.AsEnumerable()
select new { CustomerId = dt1.Field<int>("CustomerId"),
LoanNumber = dt1.Field<Int32>("LoanNumber") })
.Except(from dt2 in lastYearFunded
select new {customerNum=dt2.Field<Int32>("LoanNumber")});
Visual Studio 显示以下消息:
错误 1 实例参数:无法从“System.Data.EnumerableRowCollection”转换为“System.Linq.IQueryable”
错误 2 'System.Data.EnumerableRowCollection' 不包含 'Except' 的定义和最佳扩展方法重载 'System.Linq.Queryable.Except(System.Linq.IQueryable, System.Collections.Generic.IEnumerable) ' 有一些无效的参数
【问题讨论】:
-
您的具体问题是什么?
-
谢谢约翰!我错过了。我发布的查询对我不起作用。 Visual Studio 抛出以下消息:错误 1 实例参数:无法从 'System.Data.EnumerableRowCollection
' 转换为 'System.Linq.IQueryable ' 和 -
它还补充说:错误2'System.Data.EnumerableRowCollection
'不包含'Except'的定义和最佳扩展方法重载'System.Linq.Queryable.Except(System.Linq.IQueryable , System.Collections.Generic.IEnumerable )' 有一些无效参数 -
请将该信息添加到您的问题中,并显示出现问题的行。
标签: c# sql-server linq linq-to-objects