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时引发异常?感谢您的帮助,它现在正在工作。