-3

我有两个数据表LSSTiTableLSSTiTable1. 我想从中获取数据row1并满足某些条件。row2我认为错误是因为在满足条件后row1它返回三个东西,,,。有时返回空值。因此错误。但是我该如何克服呢?row2row1LDSIDLoopPairIDLocCodeLocCode

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”的定义,并且找不到接受“System.Data.DataRow”类型的第一个参数的扩展方法“LocCode”(您是否缺少 using 指令或程序集引用?)

4

2 回答 2

0

尝试这个:

foreach (var rowItem in rowData)
{
    var locCodeValueInRow1 = rowItem.row1[LSSTiTable.Columns["LocCode"].Ordinal];
    var locCodeValueInRow2 = rowItem.row2[LSSTiTable1.Columns["LocCode"].Ordinal];
}
于 2013-07-18T07:51:18.057 回答
0

重新检查您的 LDSID 和 LoopPairID 在您的数据库表中是否是 int 和 byte ......它可能是其他类型。

于 2013-07-18T07:52:52.113 回答