我有两个数据表LSSTiTable
和LSSTiTable1
。我想从row1
和row2
获取满足特定条件的数据。我认为错误是因为在满足条件row1
后row2
和row1
它返回三件事LDSID
,LoopPairID
,LocCode
。有时LocCode
会返回Null Value。因此错误。但我该如何克服这个问题?
var rowData =
(from row1 in LSSTiTable.AsEnumerable()
join row2 in LSSTiTable1.AsEnumerable()
on new { a = row1.Field<int>("LDSID"), b = row1.Field<byte>("LoopPairID") }
equals new { a = row2.Field<int>("LDSID"), b = row2.Field<byte>("LoopPairID") }
select new { row1, row2 }).ToList();
这是我得到的错误
'System.Data.DataRow'不包含'LocCode'的定义 没有扩展方法'LocCode'接受类型的第一个参数 可以找到'System.Data.DataRow'(你是否错过了使用 指令或程序集引用?)
答案 0 :(得分:0)
试试这个:
foreach (var rowItem in rowData)
{
var locCodeValueInRow1 = rowItem.row1[LSSTiTable.Columns["LocCode"].Ordinal];
var locCodeValueInRow2 = rowItem.row2[LSSTiTable1.Columns["LocCode"].Ordinal];
}
答案 1 :(得分:0)
重新检查数据库表中的LDSID和LoopPairID是否为int和byte。它可能是其他类型。