2016-11-11 15 views
0

我有兩個數據表,錯誤 - 連接兩個數據表使用LINQ如果空值存在

var userList1 = from myRow in dt.AsEnumerable() 
          where myRow.Field<bool?>("IsActive1") == null ? true : myRow.Field<bool?>("IsActive1") == true 
          select myRow; 


      var userList2 = from myRow in dt1.AsEnumerable() 
          select myRow; 

DT1表顯示這個樣子,

enter image description here

但我想空用戶標識的docCount從這個Linq查詢,

var objUserSetUp1 = (from A in userList1 
           join B in userList2 on new { UserId = A.Field<Int64?>("Id") == null ? 0 : A.Field<Int64>("Id") } equals new { UserId = B.Field<Int64?>("UserId") == null ? 0 : B.Field<Int64>("UserId") } 
           select new 
           { 
            UserId = A.Field<Int64>("Id"), 
            FirstName = A.Field<string>("FirstName"), 
            SurName = A.Field<string>("SurName"), 
            Computer_Name = A.Field<string>("Computer_Name"), 
            IP_Address = A.Field<string>("IP_Address"), 
            LogInTime = A.Field<string>("LogInTime") == null ? "UnKnown" : A.Field<string>("LogInTime"), 
            UserName = A.Field<string>("UserName"), 
            Password = A.Field<string>("Password"), 
            login_Id = A.Field<Int64?>("login_Id") == null ? 0 : A.Field<Int64?>("login_Id"), 
            docCount = B.Field<Int64>("docCount") 

           }).ToList(); 

但它拋出錯誤。 「價值不能爲空。」如何在objUserSetUp1中獲得空的UserId docCount並避免objUserSetUp1對象發生此異常?

+1

入住此行'用戶ID = A.Field ( 「ID」)' –

+0

@IvanStoev是的,我已經寫了用戶ID = A.Field ( 「ID」)這樣的代碼。現在錯誤解決了。但是我想,如果UserId爲null也要帶docCout字段值。我怎樣才能做到這一點? – lashja

回答

1

你想要所有的計數在UserId不爲空?喜歡這個?

var objUserSetUp1 = (from A in userList1 
       where A.Field<Int64>("Id") != null 
       select new 
       { 
        UserId = A.Field<Int64>("Id"), 
        FirstName = A.Field<string>("FirstName"), 
        SurName = A.Field<string>("SurName"), 
        Computer_Name = A.Field<string>("Computer_Name"), 
        IP_Address = A.Field<string>("IP_Address"), 
        LogInTime = A.Field<string>("LogInTime") == null ? "UnKnown" : A.Field<string>("LogInTime"), 
        UserName = A.Field<string>("UserName"), 
        Password = A.Field<string>("Password"), 
        login_Id = A.Field<Int64?>("login_Id") == null ? 0 : A.Field<Int64?>("login_Id"), 
        docCount = A.Field<Int64>("docCount") 

       }).ToList(); 
+0

是的我已經寫了UserId = A.Field (「Id」)這樣的代碼。現在錯誤解決了。但是我想,如果UserId爲null也要帶docCout字段值。我怎樣才能做到這一點? – lashja

相關問題