尝试使用 LINQ 连接三个数据表 table1、table2、table3。表 1 和表 2 按 2 个条件连接,表 1 和表 3 按 1 个条件连接。以下是我的代码。但我得到一个异常(exception)说 “无法将‘System.DBNull’类型的对象转换为‘System.String’类型。”
下面是我的代码:
var result = from cust in tblCust.AsEnumerable()
join mat in tblMat.AsEnumerable()
new { coil_id = (string)cust["coil_id"], order_id = (string)cust["order_id"] }
equals
new { coil_id = (string)mat["PIECE_ID"], order_id = (string)mat["PRODUCTION_ORDER_ID"] }
join parts in tblParts.AsEnumerable() on (string)mat["PIECE_ID"] equals (string)parts["ProdCoilNo"]
select new
{
coil_id = mat["PIECE_ID"],
order_id = mat["PRODUCTION_ORDER_ID"],
part = parts["PartNumber"],
gauge = mat["THICKNESS"],
width = mat["WIDTH"],
weight = mat["WEIGHT"],
code = mat["MATERIAL_BLOCK_STATE"],
requestor_comment = cust["requestor_comment"],
requestor = cust["requestor"],
updated_by_comment = cust["updated_by_comment"],
updated_by_user = cust["updated_by_user"]
};
我在 (string)parts["ProdCoilNo"] 附近遇到异常
最佳答案
对包含null的字段使用合并运算符替换为空字符串
像这样:
coil_id = mat["PIECE_ID"] ?? String.Empty,
关于c# - INNER JOIN 3 使用 LINQ 的数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062261/