我的問題是Where子句table1.Field<string>(3) == table2.Field<string>(3)
。這些值是0或1,我認爲linq會將其更改爲bool值。 Linq得到「無法將類型'System.Boolean'的對象轉換爲鍵入'System.String'」。linq查詢越來越無法轉換'System.Boolean'類型的對象來鍵入'System.String'
我試過table1[3].ToString() == table2[3].ToString()
,但它沒有出現錯誤或匹配的行,我知道它應該拿出一些。
我的查詢:
var match = (from table1 in dt1.AsEnumerable()
join table2 in dt2.AsEnumerable() on table1[1].ToString() equals table2[1].ToString())
where table1.Field<string>(3) == table2.Field<string>(3)
&& table1.Field<string>("ID") == table2.Field<string>("ID")
select table1).ToList();
我期待添加更多的地方在該行的條款,但它無法對具有0或1的值來比較的。
感謝您的幫助
如果刪除條件,你有你的結果記錄? – Hackerman
你嘗試過'String.Equal()'方法嗎? – Media
@Hackerman是的。我甚至可以添加沒有值爲0或1的其他Where子句,它可以工作 –