LINQ左外部联接,对象引用未设置为对象的实例
我试图在两个数据表上执行左外部联接,但得到一个错误:对象引用未设置为对象的实例。 我的代码是:LINQ左外部联接,对象引用未设置为对象的实例,linq,join,Linq,Join,我试图在两个数据表上执行左外部联接,但得到一个错误:对象引用未设置为对象的实例。 我的代码是: var result = from dataRows1 in dtInv.AsEnumerable() join dataRows2 in dtSal.AsEnumerable() on dataRows
var result =
from dataRows1 in dtInv.AsEnumerable()
join dataRows2 in dtSal.AsEnumerable()
on dataRows1.Field<string>("taken_by").ToUpper() == null ? "" : dataRows1.Field<string>("taken_by").ToUpper()
equals dataRows2.Field<string>("taken_by").ToUpper() == null ? "" : dataRows2.Field<string>("taken_by").ToUpper() into lj
from r in lj.DefaultIfEmpty()
select dtResult.LoadDataRow(new object[]
{
dataRows1.Field<string>("taken_by") == null ? "": dataRows1.Field<string>("taken_by"),
dataRows1.Field<int>("TotalInv") == null ? 0 : dataRows1.Field<int>("TotalInv"),
dataRows1.Field<double>("TotalAmt") == null ? 0.00 : dataRows1.Field<double>("TotalAmt"),
r == null ? 0 : r.Field<int>("TotalSal"),
r == null ? 0 : r.Field<double>("SalAmt")
}, false);
var结果=
来自dtInv.AsEnumerable()中的dataRows1
在dtSal.AsEnumerable()中加入dataRows2
在dataRows1.Field(“take_by”).ToUpper()==null?“”:dataRows1.Field(“take_by”).ToUpper()
等于dataRows2.Field(“take_by”).ToUpper()==null?“”:dataRows2.Field(“take_by”).ToUpper()进入lj
来自lj.DefaultIfEmpty()中的r
选择dtResult.LoadDataRow(新对象[])
{
dataRows1.Field(“take_by”)==null?”:dataRows1.Field(“take_by”),
dataRows1.Field(“TotalInv”)==null?0:dataRows1.Field(“TotalInv”),
dataRows1.Field(“TotalAmt”)==null?0.00:dataRows1.Field(“TotalAmt”),
r==null?0:r.Field(“TotalSal”),
r==null?0:r.Field(“SalAmt”)
},假);
可能某些“take_by”值为空,并且在您尝试运行ToUpper时引发异常?感谢您的帮助,它现在正在工作。